From 1cd31cfce90936d936b914af6190254c240f6c25 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Wed, 17 Aug 2022 21:25:04 +0200 Subject: [PATCH 01/45] fix getFrequency for .note --- packages/core/util.mjs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/core/util.mjs b/packages/core/util.mjs index 728fa92b..8b017d21 100644 --- a/packages/core/util.mjs +++ b/packages/core/util.mjs @@ -67,8 +67,11 @@ export const getPlayableNoteValue = (hap) => { export const getFrequency = (hap) => { let { value, context } = hap; // if value is number => interpret as midi number as long as its not marked as frequency - if (typeof value === 'object' && value.freq) { - return value.freq; + if (typeof value === 'object') { + if (value.freq) { + return value.freq; + } + return getFreq(value.note || value.n || value.value); } if (typeof value === 'number' && context.type !== 'frequency') { value = fromMidi(hap.value); From 7af6188a8a6d7f713ec8c43d0ea5ecd7bba10cf0 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Wed, 17 Aug 2022 21:26:00 +0200 Subject: [PATCH 02/45] move scheduler to core + move audioctx to userland --- packages/{webaudio => core}/clockworker.mjs | 2 +- .../{webaudio => core}/examples/repl.html | 64 ++++++++++++------- packages/core/index.mjs | 2 + packages/{webaudio => core}/scheduler.mjs | 28 ++++---- packages/webaudio/index.mjs | 2 - 5 files changed, 55 insertions(+), 43 deletions(-) rename packages/{webaudio => core}/clockworker.mjs (97%) rename packages/{webaudio => core}/examples/repl.html (51%) rename packages/{webaudio => core}/scheduler.mjs (65%) diff --git a/packages/webaudio/clockworker.mjs b/packages/core/clockworker.mjs similarity index 97% rename from packages/webaudio/clockworker.mjs rename to packages/core/clockworker.mjs index e1ec9005..07bd45d3 100644 --- a/packages/webaudio/clockworker.mjs +++ b/packages/core/clockworker.mjs @@ -1,6 +1,6 @@ /* clockworker.mjs - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ diff --git a/packages/webaudio/examples/repl.html b/packages/core/examples/repl.html similarity index 51% rename from packages/webaudio/examples/repl.html rename to packages/core/examples/repl.html index b34d956f..037a64c4 100644 --- a/packages/webaudio/examples/repl.html +++ b/packages/core/examples/repl.html @@ -1,8 +1,8 @@ -
-
-
- - +
+ + + +
evaluate()); - - document.getElementById('start').addEventListener('click', () => scheduler.start()); + document.getElementById('start').addEventListener('click', () => { + ctx.resume(); + scheduler.start(); + }); document.getElementById('stop').addEventListener('click', () => scheduler.stop()); document.getElementById('slower').addEventListener('click', () => scheduler.setCps(scheduler.cps - 0.1)); document.getElementById('faster').addEventListener('click', () => scheduler.setCps(scheduler.cps + 0.1)); diff --git a/packages/core/index.mjs b/packages/core/index.mjs index 83c82abe..293aa614 100644 --- a/packages/core/index.mjs +++ b/packages/core/index.mjs @@ -15,6 +15,8 @@ export * from './state.mjs'; export * from './timespan.mjs'; export * from './util.mjs'; export * from './speak.mjs'; +export * from './clockworker.mjs'; +export * from './scheduler.mjs'; export { default as gist } from './gist.js'; // below won't work with runtime.mjs (json import fails) /* import * as p from './package.json'; diff --git a/packages/webaudio/scheduler.mjs b/packages/core/scheduler.mjs similarity index 65% rename from packages/webaudio/scheduler.mjs rename to packages/core/scheduler.mjs index 618fec96..ef57455f 100644 --- a/packages/webaudio/scheduler.mjs +++ b/packages/core/scheduler.mjs @@ -1,6 +1,6 @@ /* scheduler.mjs - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -10,29 +10,24 @@ export class Scheduler { worker; pattern; phase; - audioContext; cps = 1; - constructor({ audioContext, interval = 0.1, onEvent, latency = 0.1 }) { - this.audioContext = audioContext; - this.worker = new ClockWorker((tick, interval) => { + constructor({ interval = 0.1, onTrigger, latency = 0.1 }) { + this.worker = new ClockWorker((_, interval) => { const begin = this.phase; const end = this.phase + interval * this.cps; this.phase = end; const haps = this.pattern.queryArc(begin, end); - haps.forEach((e) => { - if (typeof e.value?.cps === 'number') { - this.setCps(e.value?.cps); + haps.forEach((hap) => { + if (typeof hap.value?.cps === 'number') { + this.setCps(hap.value?.cps); } - if (!e.part.begin.equals(e.whole.begin)) { + if (!hap.part.begin.equals(hap.whole.begin)) { return; } - if (e.context.onTrigger) { - const ctxTime = (e.whole.begin - begin) / this.cps + this.audioContext.currentTime + latency; - e.context.onTrigger(ctxTime, e, this.audioContext.currentTime, this.cps); - } - if (onEvent) { - onEvent?.(e); - } + const deadline = (hap.whole.begin - begin) / this.cps + latency; + // TODO: use legato / duration of objectified value + const duration = hap.duration / this.cps; + onTrigger?.(hap, deadline, duration); }); }, interval); } @@ -40,7 +35,6 @@ export class Scheduler { if (!this.pattern) { throw new Error('Scheduler: no pattern set! call .setPattern first.'); } - this.audioContext.resume(); this.phase = 0; this.worker.start(); } diff --git a/packages/webaudio/index.mjs b/packages/webaudio/index.mjs index a3a321ed..5fa1e36e 100644 --- a/packages/webaudio/index.mjs +++ b/packages/webaudio/index.mjs @@ -4,7 +4,5 @@ Copyright (C) 2022 Strudel contributors - see . */ -export * from './clockworker.mjs'; -export * from './scheduler.mjs'; export * from './webaudio.mjs'; export * from './sampler.mjs'; From 591855919e374acd3ea3c8c2f3ca22c7504d3b8b Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Wed, 17 Aug 2022 21:29:57 +0200 Subject: [PATCH 03/45] working default tune --- packages/core/examples/repl.html | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/packages/core/examples/repl.html b/packages/core/examples/repl.html index 037a64c4..ae39cf0d 100644 --- a/packages/core/examples/repl.html +++ b/packages/core/examples/repl.html @@ -45,16 +45,10 @@ Loading... scheduler.setCps(scheduler.cps - 0.1)); document.getElementById('faster').addEventListener('click', () => scheduler.setCps(scheduler.cps + 0.1)); + From e77129fa51ac51aa9db257c20e1b250db7fa989f Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Wed, 17 Aug 2022 23:55:06 +0200 Subject: [PATCH 04/45] scheduler error callback --- packages/core/scheduler.mjs | 39 +++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/packages/core/scheduler.mjs b/packages/core/scheduler.mjs index ef57455f..69cbd8ab 100644 --- a/packages/core/scheduler.mjs +++ b/packages/core/scheduler.mjs @@ -11,24 +11,29 @@ export class Scheduler { pattern; phase; cps = 1; - constructor({ interval = 0.1, onTrigger, latency = 0.1 }) { + constructor({ interval = 0.1, onTrigger, onError, latency = 0.1 }) { this.worker = new ClockWorker((_, interval) => { - const begin = this.phase; - const end = this.phase + interval * this.cps; - this.phase = end; - const haps = this.pattern.queryArc(begin, end); - haps.forEach((hap) => { - if (typeof hap.value?.cps === 'number') { - this.setCps(hap.value?.cps); - } - if (!hap.part.begin.equals(hap.whole.begin)) { - return; - } - const deadline = (hap.whole.begin - begin) / this.cps + latency; - // TODO: use legato / duration of objectified value - const duration = hap.duration / this.cps; - onTrigger?.(hap, deadline, duration); - }); + try { + const begin = this.phase; + const end = this.phase + interval * this.cps; + this.phase = end; + const haps = this.pattern.queryArc(begin, end); + haps.forEach((hap) => { + if (typeof hap.value?.cps === 'number') { + this.setCps(hap.value?.cps); + } + if (!hap.part.begin.equals(hap.whole.begin)) { + return; + } + const deadline = (hap.whole.begin - begin) / this.cps + latency; + // TODO: use legato / duration of objectified value + const duration = hap.duration / this.cps; + onTrigger?.(hap, deadline, duration); + }); + } catch (err) { + console.warn('scheduler error', err); + onError?.(err); + } }, interval); } start() { From ee84b4e0131ea09ff28fb65c4479ad23b28241a2 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Wed, 17 Aug 2022 23:56:36 +0200 Subject: [PATCH 05/45] export webaudio out as separate function --- packages/webaudio/webaudio.mjs | 299 +++++++++++++++++---------------- 1 file changed, 151 insertions(+), 148 deletions(-) diff --git a/packages/webaudio/webaudio.mjs b/packages/webaudio/webaudio.mjs index e177d0fd..400d5325 100644 --- a/packages/webaudio/webaudio.mjs +++ b/packages/webaudio/webaudio.mjs @@ -124,153 +124,156 @@ const splitSN = (s, n) => { return [s2, n2]; }; -Pattern.prototype.out = function () { - return this.onTrigger(async (t, hap, ct, cps) => { - const hapDuration = hap.duration / cps; - try { - const ac = getAudioContext(); - // calculate correct time (tone.js workaround) - t = ac.currentTime + t - ct; - // destructure value - let { - freq, - s, - sf, - clip = 0, // if 1, samples will be cut off when the hap ends - n = 0, - note, - gain = 1, - cutoff, - resonance = 1, - hcutoff, - hresonance = 1, - bandf, - bandq = 1, - pan, - attack = 0.001, - decay = 0.05, - sustain = 0.5, - release = 0.001, - speed = 1, // sample playback speed - begin = 0, - end = 1, - } = hap.value; - const { velocity = 1 } = hap.context; - gain *= velocity; // legacy fix for velocity - // the chain will hold all audio nodes that connect to each other - const chain = []; - if (typeof s === 'string') { - [s, n] = splitSN(s, n); - } - if (typeof note === 'string') { - [note, n] = splitSN(note, n); - } - if (!s || ['sine', 'square', 'triangle', 'sawtooth'].includes(s)) { - // with synths, n and note are the same thing - n = note || n; - if (typeof n === 'string') { - n = toMidi(n); // e.g. c3 => 48 - } - // get frequency - if (!freq && typeof n === 'number') { - freq = fromMidi(n); // + 48); - } - // make oscillator - const o = getOscillator({ t, s, freq, duration: hapDuration, release }); - chain.push(o); - // level down oscillators as they are really loud compared to samples i've tested - const g = ac.createGain(); - g.gain.value = 0.3; - chain.push(g); - // TODO: make adsr work with samples without pops - // envelope - const adsr = getADSR(attack, decay, sustain, release, 1, t, t + hapDuration); - chain.push(adsr); - } else { - // load sample - if (speed === 0) { - // no playback - return; - } - if (!s) { - console.warn('no sample specified'); - return; - } - const soundfont = getSoundfontKey(s); - let bufferSource; - - try { - if (soundfont) { - // is soundfont - bufferSource = await globalThis.getFontBufferSource(soundfont, note || n, ac); - } else { - // is sample from loaded samples(..) - bufferSource = await getSampleBufferSource(s, n, note); - } - } catch (err) { - console.warn(err); - return; - } - // asny stuff above took too long? - if (ac.currentTime > t) { - console.warn('sample still loading:', s, n); - return; - } - if (!bufferSource) { - console.warn('no buffer source'); - return; - } - bufferSource.playbackRate.value = Math.abs(speed) * bufferSource.playbackRate.value; - // TODO: nudge, unit, cut, loop - let duration = soundfont || clip ? hapDuration : bufferSource.buffer.duration; - // let duration = bufferSource.buffer.duration; - const offset = begin * duration; - duration = ((end - begin) * duration) / Math.abs(speed); - if (soundfont || clip) { - bufferSource.start(t, offset); // duration does not work here for some reason - } else { - bufferSource.start(t, offset, duration); - } - chain.push(bufferSource); - if (soundfont || clip) { - const env = ac.createGain(); - const releaseLength = 0.1; - env.gain.value = 0.6; - env.gain.setValueAtTime(env.gain.value, t + duration); - env.gain.linearRampToValueAtTime(0, t + duration + releaseLength); - // env.gain.linearRampToValueAtTime(0, t + duration + releaseLength); - chain.push(env); - bufferSource.stop(t + duration + releaseLength); - } else { - bufferSource.stop(t + duration); - } - } - // master out - const master = ac.createGain(); - master.gain.value = gain; - chain.push(master); - - // filters - cutoff !== undefined && chain.push(getFilter('lowpass', cutoff, resonance)); - hcutoff !== undefined && chain.push(getFilter('highpass', hcutoff, hresonance)); - bandf !== undefined && chain.push(getFilter('bandpass', bandf, bandq)); - // TODO vowel - // TODO delay / delaytime / delayfeedback - // panning - if (pan !== undefined) { - const panner = ac.createStereoPanner(); - panner.pan.value = 2 * pan - 1; - chain.push(panner); - } - // master out - /* const master = ac.createGain(); - master.gain.value = 0.8 * gain; - chain.push(master); */ - chain.push(ac.destination); - // connect chain elements together - chain.slice(1).reduce((last, current) => last.connect(current), chain[0]); - } catch (e) { - console.warn('.out error:', e); +// export const webaudioOutput = async (t, hap, ct, cps) => { +export const webaudioOutput = async (hap, deadline, hapDuration) => { + try { + const ac = getAudioContext(); + // calculate correct time (tone.js workaround) + const t = ac.currentTime + deadline; + // destructure value + let { + freq, + s, + sf, + clip = 0, // if 1, samples will be cut off when the hap ends + n = 0, + note, + gain = 1, + cutoff, + resonance = 1, + hcutoff, + hresonance = 1, + bandf, + bandq = 1, + pan, + attack = 0.001, + decay = 0.05, + sustain = 0.5, + release = 0.001, + speed = 1, // sample playback speed + begin = 0, + end = 1, + } = hap.value; + const { velocity = 1 } = hap.context; + gain *= velocity; // legacy fix for velocity + // the chain will hold all audio nodes that connect to each other + const chain = []; + if (typeof s === 'string') { + [s, n] = splitSN(s, n); } - }); + if (typeof note === 'string') { + [note, n] = splitSN(note, n); + } + if (!s || ['sine', 'square', 'triangle', 'sawtooth'].includes(s)) { + // with synths, n and note are the same thing + n = note || n; + if (typeof n === 'string') { + n = toMidi(n); // e.g. c3 => 48 + } + // get frequency + if (!freq && typeof n === 'number') { + freq = fromMidi(n); // + 48); + } + // make oscillator + const o = getOscillator({ t, s, freq, duration: hapDuration, release }); + chain.push(o); + // level down oscillators as they are really loud compared to samples i've tested + const g = ac.createGain(); + g.gain.value = 0.3; + chain.push(g); + // TODO: make adsr work with samples without pops + // envelope + const adsr = getADSR(attack, decay, sustain, release, 1, t, t + hapDuration); + chain.push(adsr); + } else { + // load sample + if (speed === 0) { + // no playback + return; + } + if (!s) { + console.warn('no sample specified'); + return; + } + const soundfont = getSoundfontKey(s); + let bufferSource; + + try { + if (soundfont) { + // is soundfont + bufferSource = await globalThis.getFontBufferSource(soundfont, note || n, ac); + } else { + // is sample from loaded samples(..) + bufferSource = await getSampleBufferSource(s, n, note); + } + } catch (err) { + console.warn(err); + return; + } + // asny stuff above took too long? + if (ac.currentTime > t) { + console.warn('sample still loading:', s, n); + return; + } + if (!bufferSource) { + console.warn('no buffer source'); + return; + } + bufferSource.playbackRate.value = Math.abs(speed) * bufferSource.playbackRate.value; + // TODO: nudge, unit, cut, loop + let duration = soundfont || clip ? hapDuration : bufferSource.buffer.duration; + // let duration = bufferSource.buffer.duration; + const offset = begin * duration; + duration = ((end - begin) * duration) / Math.abs(speed); + if (soundfont || clip) { + bufferSource.start(t, offset); // duration does not work here for some reason + } else { + bufferSource.start(t, offset, duration); + } + chain.push(bufferSource); + if (soundfont || clip) { + const env = ac.createGain(); + const releaseLength = 0.1; + env.gain.value = 0.6; + env.gain.setValueAtTime(env.gain.value, t + duration); + env.gain.linearRampToValueAtTime(0, t + duration + releaseLength); + // env.gain.linearRampToValueAtTime(0, t + duration + releaseLength); + chain.push(env); + bufferSource.stop(t + duration + releaseLength); + } else { + bufferSource.stop(t + duration); + } + } + // master out + const master = ac.createGain(); + master.gain.value = gain; + chain.push(master); + + // filters + cutoff !== undefined && chain.push(getFilter('lowpass', cutoff, resonance)); + hcutoff !== undefined && chain.push(getFilter('highpass', hcutoff, hresonance)); + bandf !== undefined && chain.push(getFilter('bandpass', bandf, bandq)); + // TODO vowel + // TODO delay / delaytime / delayfeedback + // panning + if (pan !== undefined) { + const panner = ac.createStereoPanner(); + panner.pan.value = 2 * pan - 1; + chain.push(panner); + } + // master out + /* const master = ac.createGain(); + master.gain.value = 0.8 * gain; + chain.push(master); */ + chain.push(ac.destination); + // connect chain elements together + chain.slice(1).reduce((last, current) => last.connect(current), chain[0]); + } catch (e) { + console.warn('.out error:', e); + } +}; + +Pattern.prototype.out = function () { + // TODO: refactor (t, hap, ct, cps) to (hap, deadline, duration) ? + return this.onTrigger((t, hap, ct, cps) => webaudioOutput(hap, t - ct, hap.duration / cps)); }; From bc345b569b69ed810c06a1a31bdf94f91f875cc6 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Wed, 17 Aug 2022 23:57:49 +0200 Subject: [PATCH 06/45] add hooks for scheduler and evaluator --- packages/react/src/hooks/useEvaluator.jsx | 30 +++++++++++++++++++++++ packages/react/src/hooks/useScheduler.jsx | 18 ++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 packages/react/src/hooks/useEvaluator.jsx create mode 100644 packages/react/src/hooks/useScheduler.jsx diff --git a/packages/react/src/hooks/useEvaluator.jsx b/packages/react/src/hooks/useEvaluator.jsx new file mode 100644 index 00000000..e9929555 --- /dev/null +++ b/packages/react/src/hooks/useEvaluator.jsx @@ -0,0 +1,30 @@ +import { useRef, useState, useCallback, useEffect } from 'react'; + +function useEvaluator(code, evalOnMount = true) { + const [error, setError] = useState(); + const [activeCode, setActiveCode] = useState(code); + const [pattern, setPattern] = useState(); + const isDirty = code !== activeCode; + const evaluate = useCallback(() => { + try { + // TODO: use @strudel.cycles/eval or let user inject custom eval function + const _pattern = eval(code); + setActiveCode(activeCode); + setPattern(_pattern); + setError(); + } catch (err) { + setError(err); + console.warn('eval error', err); + } + }, [code, scheduler]); + const inited = useRef(); + useEffect(() => { + if (!inited.current && evalOnMount) { + evaluate(); + } + inited.current = true; + }, [evaluate, evalOnMount]); + return { error, evaluate, activeCode, pattern, isDirty }; +} + +export default useEvaluator; diff --git a/packages/react/src/hooks/useScheduler.jsx b/packages/react/src/hooks/useScheduler.jsx new file mode 100644 index 00000000..52c61ef4 --- /dev/null +++ b/packages/react/src/hooks/useScheduler.jsx @@ -0,0 +1,18 @@ +import { Scheduler } from '@strudel.cycles/core'; +import { useEffect, useMemo, useState } from 'react'; + +function useScheduler(pattern, defaultOutput, interval = 0.1) { + const [error, setError] = useState(); + // TODO: how / when to remove schedulerError? + const scheduler = useMemo( + () => new Scheduler({ interval, onTrigger: defaultOutput, onError: setError }), + [defaultOutput, interval], + ); + useEffect(() => { + // console.log('pattern', pattern); + pattern && scheduler?.setPattern(pattern); + }, [pattern, scheduler]); + return { error, scheduler }; +} + +export default useScheduler; From d667e790b9722348fd4ba20220c8e04785075fc8 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Wed, 17 Aug 2022 23:58:34 +0200 Subject: [PATCH 07/45] export new hooks --- packages/react/dist/index.cjs.js | 4 +-- packages/react/dist/index.es.js | 42 ++++++++++++++++++++++++++++++-- packages/react/src/index.js | 2 ++ 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/packages/react/dist/index.cjs.js b/packages/react/dist/index.cjs.js index 83d8e376..e7af1c0d 100644 --- a/packages/react/dist/index.cjs.js +++ b/packages/react/dist/index.cjs.js @@ -1,3 +1,3 @@ -"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var t=require("react"),re=require("@uiw/react-codemirror"),k=require("@codemirror/view"),L=require("@codemirror/state"),oe=require("@codemirror/lang-javascript"),i=require("@lezer/highlight"),se=require("@uiw/codemirror-themes"),ne=require("react-hook-inview"),ce=require("@strudel.cycles/eval"),le=require("@strudel.cycles/core/util.mjs"),y=require("@strudel.cycles/tone"),B=require("@strudel.cycles/core"),E=require("@strudel.cycles/midi");function $(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var m=$(t),ie=$(re),ue=se.createTheme({theme:"dark",settings:{background:"#222",foreground:"#75baff",caret:"#ffcc00",selection:"rgba(128, 203, 196, 0.5)",selectionMatch:"#036dd626",lineHighlight:"#8a91991a",gutterBackground:"transparent",gutterForeground:"#676e95"},styles:[{tag:i.tags.keyword,color:"#c792ea"},{tag:i.tags.operator,color:"#89ddff"},{tag:i.tags.special(i.tags.variableName),color:"#eeffff"},{tag:i.tags.typeName,color:"#f07178"},{tag:i.tags.atom,color:"#f78c6c"},{tag:i.tags.number,color:"#ff5370"},{tag:i.tags.definition(i.tags.variableName),color:"#82aaff"},{tag:i.tags.string,color:"#c3e88d"},{tag:i.tags.special(i.tags.string),color:"#f07178"},{tag:i.tags.comment,color:"#7d8799"},{tag:i.tags.variableName,color:"#f07178"},{tag:i.tags.tagName,color:"#ff5370"},{tag:i.tags.bracket,color:"#a2a1a4"},{tag:i.tags.meta,color:"#ffcb6b"},{tag:i.tags.attributeName,color:"#c792ea"},{tag:i.tags.propertyName,color:"#c792ea"},{tag:i.tags.className,color:"#decb6b"},{tag:i.tags.invalid,color:"#ffffff"}]});const P=L.StateEffect.define(),de=L.StateField.define({create(){return k.Decoration.none},update(e,r){try{for(let n of r.effects)if(n.is(P))if(n.value){const u=k.Decoration.mark({attributes:{style:"background-color: #FFCA2880"}});e=k.Decoration.set([u.range(0,r.newDoc.length)])}else e=k.Decoration.set([]);return e}catch(n){return console.warn("flash error",n),e}},provide:e=>k.EditorView.decorations.from(e)}),K=e=>{e.dispatch({effects:P.of(!0)}),setTimeout(()=>{e.dispatch({effects:P.of(!1)})},200)},A=L.StateEffect.define(),fe=L.StateField.define({create(){return k.Decoration.none},update(e,r){try{for(let n of r.effects)if(n.is(A)){const u=n.value.map(d=>(d.context.locations||[]).map(({start:l,end:c})=>{const f=d.context.color||"#FFCA28";let o=r.newDoc.line(l.line).from+l.column,a=r.newDoc.line(c.line).from+c.column;const w=r.newDoc.length;return o>w||a>w?void 0:k.Decoration.mark({attributes:{style:`outline: 1.5px solid ${f};`}}).range(o,a)})).flat().filter(Boolean)||[];e=k.Decoration.set(u,!0)}return e}catch{return k.Decoration.set([])}},provide:e=>k.EditorView.decorations.from(e)}),ge=[oe.javascript(),ue,fe,de];function Q({value:e,onChange:r,onViewChanged:n,onSelectionChange:u,options:d,editorDidMount:l}){const c=t.useCallback(a=>{r?.(a)},[r]),f=t.useCallback(a=>{n?.(a)},[n]),o=t.useCallback(a=>{a.selectionSet&&u&&u?.(a.state.selection)},[u]);return m.default.createElement(m.default.Fragment,null,m.default.createElement(ie.default,{value:e,onChange:c,onCreateEditor:f,onUpdate:o,extensions:ge}))}function J(e){const{onEvent:r,onQuery:n,onSchedule:u,ready:d=!0,onDraw:l}=e,[c,f]=t.useState(!1),o=1,a=()=>Math.floor(y.Tone.getTransport().seconds/o),w=(p=a())=>{const S=new B.TimeSpan(p,p+1),N=n?.(new B.State(S))||[];u?.(N,p);const F=S.begin.valueOf();y.Tone.getTransport().cancel(F);const M=(p+1)*o-.5,R=Math.max(y.Tone.getTransport().seconds,M)+.1;y.Tone.getTransport().schedule(()=>{w(p+1)},R),N?.filter(b=>b.part.begin.equals(b.whole?.begin)).forEach(b=>{y.Tone.getTransport().schedule(v=>{r(v,b,y.Tone.getContext().currentTime),y.Tone.Draw.schedule(()=>{l?.(v,b)},v)},b.part.begin.valueOf())})};t.useEffect(()=>{d&&w()},[r,u,n,l,d]);const C=async()=>{f(!0),await y.Tone.start(),y.Tone.getTransport().start("+0.1")},_=()=>{y.Tone.getTransport().pause(),f(!1)};return{start:C,stop:_,onEvent:r,started:c,setStarted:f,toggle:()=>c?_():C(),query:w,activeCycle:a}}function G(e){return t.useEffect(()=>(window.addEventListener("message",e),()=>window.removeEventListener("message",e)),[e]),t.useCallback(r=>window.postMessage(r,"*"),[])}let me=()=>Math.floor((1+Math.random())*65536).toString(16).substring(1);const he=e=>encodeURIComponent(btoa(e));function X({tune:e,defaultSynth:r,autolink:n=!0,onEvent:u,onDraw:d}){const l=t.useMemo(()=>me(),[]),[c,f]=t.useState(e),[o,a]=t.useState(),[w,C]=t.useState(""),[_,T]=t.useState(),[p,S]=t.useState(!1),[N,F]=t.useState(""),[M,R]=t.useState(),b=t.useMemo(()=>c!==o||_,[c,o,_]),v=t.useCallback(g=>C(s=>s+`${s?` +"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var React=require("react"),_CodeMirror=require("@uiw/react-codemirror"),view=require("@codemirror/view"),state=require("@codemirror/state"),langJavascript=require("@codemirror/lang-javascript"),highlight=require("@lezer/highlight"),codemirrorThemes=require("@uiw/codemirror-themes"),reactHookInview=require("react-hook-inview"),_eval=require("@strudel.cycles/eval"),util_mjs=require("@strudel.cycles/core/util.mjs"),tone=require("@strudel.cycles/tone"),core=require("@strudel.cycles/core"),midi=require("@strudel.cycles/midi");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),_CodeMirror__default=_interopDefaultLegacy(_CodeMirror),strudelTheme=codemirrorThemes.createTheme({theme:"dark",settings:{background:"#222",foreground:"#75baff",caret:"#ffcc00",selection:"rgba(128, 203, 196, 0.5)",selectionMatch:"#036dd626",lineHighlight:"#8a91991a",gutterBackground:"transparent",gutterForeground:"#676e95"},styles:[{tag:highlight.tags.keyword,color:"#c792ea"},{tag:highlight.tags.operator,color:"#89ddff"},{tag:highlight.tags.special(highlight.tags.variableName),color:"#eeffff"},{tag:highlight.tags.typeName,color:"#f07178"},{tag:highlight.tags.atom,color:"#f78c6c"},{tag:highlight.tags.number,color:"#ff5370"},{tag:highlight.tags.definition(highlight.tags.variableName),color:"#82aaff"},{tag:highlight.tags.string,color:"#c3e88d"},{tag:highlight.tags.special(highlight.tags.string),color:"#f07178"},{tag:highlight.tags.comment,color:"#7d8799"},{tag:highlight.tags.variableName,color:"#f07178"},{tag:highlight.tags.tagName,color:"#ff5370"},{tag:highlight.tags.bracket,color:"#a2a1a4"},{tag:highlight.tags.meta,color:"#ffcb6b"},{tag:highlight.tags.attributeName,color:"#c792ea"},{tag:highlight.tags.propertyName,color:"#c792ea"},{tag:highlight.tags.className,color:"#decb6b"},{tag:highlight.tags.invalid,color:"#ffffff"}]}),style="";const setFlash=state.StateEffect.define(),flashField=state.StateField.define({create(){return view.Decoration.none},update(e,t){try{for(let r of t.effects)if(r.is(setFlash))if(r.value){const c=view.Decoration.mark({attributes:{style:"background-color: #FFCA2880"}});e=view.Decoration.set([c.range(0,t.newDoc.length)])}else e=view.Decoration.set([]);return e}catch(r){return console.warn("flash error",r),e}},provide:e=>view.EditorView.decorations.from(e)}),flash=e=>{e.dispatch({effects:setFlash.of(!0)}),setTimeout(()=>{e.dispatch({effects:setFlash.of(!1)})},200)},setHighlights=state.StateEffect.define(),highlightField=state.StateField.define({create(){return view.Decoration.none},update(e,t){try{for(let r of t.effects)if(r.is(setHighlights)){const c=r.value.map(l=>(l.context.locations||[]).map(({start:n,end:i})=>{const u=l.context.color||"#FFCA28";let o=t.newDoc.line(n.line).from+n.column,a=t.newDoc.line(i.line).from+i.column;const p=t.newDoc.length;return o>p||a>p?void 0:view.Decoration.mark({attributes:{style:`outline: 1.5px solid ${u};`}}).range(o,a)})).flat().filter(Boolean)||[];e=view.Decoration.set(c,!0)}return e}catch{return view.Decoration.set([])}},provide:e=>view.EditorView.decorations.from(e)}),extensions=[langJavascript.javascript(),strudelTheme,highlightField,flashField];function CodeMirror({value:e,onChange:t,onViewChanged:r,onSelectionChange:c,options:l,editorDidMount:n}){const i=React.useCallback(a=>{t?.(a)},[t]),u=React.useCallback(a=>{r?.(a)},[r]),o=React.useCallback(a=>{a.selectionSet&&c&&c?.(a.state.selection)},[c]);return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(_CodeMirror__default.default,{value:e,onChange:i,onCreateEditor:u,onUpdate:o,extensions}))}function useCycle(e){const{onEvent:t,onQuery:r,onSchedule:c,ready:l=!0,onDraw:n}=e,[i,u]=React.useState(!1),o=1,a=()=>Math.floor(tone.Tone.getTransport().seconds/o),p=(h=a())=>{const _=new core.TimeSpan(h,h+1),M=r?.(new core.State(_))||[];c?.(M,h);const C=_.begin.valueOf();tone.Tone.getTransport().cancel(C);const v=(h+1)*o-.5,E=Math.max(tone.Tone.getTransport().seconds,v)+.1;tone.Tone.getTransport().schedule(()=>{p(h+1)},E),M?.filter(f=>f.part.begin.equals(f.whole?.begin)).forEach(f=>{tone.Tone.getTransport().schedule(m=>{t(m,f,tone.Tone.getContext().currentTime),tone.Tone.Draw.schedule(()=>{n?.(m,f)},m)},f.part.begin.valueOf())})};React.useEffect(()=>{l&&p()},[t,c,r,n,l]);const b=async()=>{u(!0),await tone.Tone.start(),tone.Tone.getTransport().start("+0.1")},y=()=>{tone.Tone.getTransport().pause(),u(!1)};return{start:b,stop:y,onEvent:t,started:i,setStarted:u,toggle:()=>i?y():b(),query:p,activeCycle:a}}function usePostMessage(e){return React.useEffect(()=>(window.addEventListener("message",e),()=>window.removeEventListener("message",e)),[e]),React.useCallback(t=>window.postMessage(t,"*"),[])}let s4=()=>Math.floor((1+Math.random())*65536).toString(16).substring(1);const generateHash=e=>encodeURIComponent(btoa(e));function useRepl({tune:e,defaultSynth:t,autolink:r=!0,onEvent:c,onDraw:l}){const n=React.useMemo(()=>s4(),[]),[i,u]=React.useState(e),[o,a]=React.useState(),[p,b]=React.useState(""),[y,R]=React.useState(),[h,_]=React.useState(!1),[M,C]=React.useState(""),[v,E]=React.useState(),f=React.useMemo(()=>i!==o||y,[i,o,y]),m=React.useCallback(d=>b(s=>s+`${s?` -`:""}${g}`),[]),W=t.useMemo(()=>{if(o&&!o.includes("strudel disable-highlighting"))return(g,s)=>d?.(g,s,o)},[o,d]),O=t.useMemo(()=>o&&o.includes("strudel hide-header"),[o]),H=t.useMemo(()=>o&&o.includes("strudel hide-console"),[o]),h=J({onDraw:W,onEvent:t.useCallback((g,s,ee)=>{try{u?.(s),s.context.logs?.length&&s.context.logs.forEach(v);const{onTrigger:q,velocity:te}=s.context;if(q)q(g,s,ee,1);else if(r){const ae=le.getPlayableNoteValue(s);r.triggerAttackRelease(ae,s.duration.valueOf(),g,te)}else throw new Error("no defaultSynth passed to useRepl.")}catch(q){console.warn(q),q.message="unplayable event: "+q?.message,v(q.message)}},[u,v,r]),onQuery:t.useCallback(g=>{try{return M?.query(g)||[]}catch(s){return console.warn(s),s.message="query error: "+s.message,T(s),[]}},[M]),onSchedule:t.useCallback((g,s)=>Z(g),[]),ready:!!M&&!!o}),z=G(({data:{from:g,type:s}})=>{s==="start"&&g!==l&&(h.setStarted(!1),a(void 0))}),j=t.useCallback(async(g=c)=>{if(o&&!b){T(void 0),h.start();return}try{S(!0);const s=await ce.evaluate(g);h.start(),z({type:"start",from:l}),R(()=>s.pattern),n&&(window.location.hash="#"+encodeURIComponent(btoa(c))),F(he(c)),T(void 0),a(g),S(!1)}catch(s){s.message="evaluation error: "+s.message,console.warn(s),T(s)}},[o,b,c,h,n,l,z]),Z=(g,s)=>{g.length};return{hideHeader:O,hideConsole:H,pending:p,code:c,setCode:f,pattern:M,error:_,cycle:h,setPattern:R,dirty:b,log:w,togglePlay:()=>{h.started?h.stop():j()},setActiveCode:a,activateCode:j,activeCode:o,pushLog:v,hash:N}}function V(...e){return e.filter(Boolean).join(" ")}let x=[],I;function Y({view:e,pattern:r,active:n}){t.useEffect(()=>{if(e)if(r&&n){let d=function(){try{const l=y.Tone.getTransport().seconds,f=[Math.max(I||l,l-1/10),l+1/60];I=l+1/60,x=x.filter(a=>a.whole.end>l);const o=r.queryArc(...f).filter(a=>a.hasOnset());x=x.concat(o),e.dispatch({effects:A.of(x)})}catch{e.dispatch({effects:A.of([])})}u=requestAnimationFrame(d)},u=requestAnimationFrame(d);return()=>{cancelAnimationFrame(u)}}else x=[],e.dispatch({effects:A.of([])})},[r,n,e])}const pe="_container_3i85k_1",be="_header_3i85k_5",ve="_buttons_3i85k_9",ye="_button_3i85k_9",we="_buttonDisabled_3i85k_17",Me="_error_3i85k_21",Ee="_body_3i85k_25";var D={container:pe,header:be,buttons:ve,button:ye,buttonDisabled:we,error:Me,body:Ee};function U({type:e}){return m.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"sc-h-5 sc-w-5",viewBox:"0 0 20 20",fill:"currentColor"},{refresh:m.default.createElement("path",{fillRule:"evenodd",d:"M4 2a1 1 0 011 1v2.101a7.002 7.002 0 0111.601 2.566 1 1 0 11-1.885.666A5.002 5.002 0 005.999 7H9a1 1 0 010 2H4a1 1 0 01-1-1V3a1 1 0 011-1zm.008 9.057a1 1 0 011.276.61A5.002 5.002 0 0014.001 13H11a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0v-2.101a7.002 7.002 0 01-11.601-2.566 1 1 0 01.61-1.276z",clipRule:"evenodd"}),play:m.default.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM9.555 7.168A1 1 0 008 8v4a1 1 0 001.555.832l3-2a1 1 0 000-1.664l-3-2z",clipRule:"evenodd"}),pause:m.default.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zM7 8a1 1 0 012 0v4a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v4a1 1 0 102 0V8a1 1 0 00-1-1z",clipRule:"evenodd"})}[e])}function ke({tune:e,defaultSynth:r,hideOutsideView:n=!1,theme:u,init:d,onEvent:l,enableKeyboard:c}){const{code:f,setCode:o,pattern:a,activeCode:w,activateCode:C,evaluateOnly:_,error:T,cycle:p,dirty:S,togglePlay:N,stop:F}=X({tune:e,defaultSynth:r,autolink:!1,onEvent:l});t.useEffect(()=>{d&&_()},[e,d]);const[M,R]=t.useState(),[b,v]=ne.useInView({threshold:.01}),W=t.useRef(),O=t.useMemo(()=>((v||!n)&&(W.current=!0),v||W.current),[v,n]);return Y({view:M,pattern:a,active:p.started&&!w?.includes("strudel disable-highlighting")}),t.useLayoutEffect(()=>{if(c){const H=async h=>{(h.ctrlKey||h.altKey)&&(h.code==="Enter"?(h.preventDefault(),K(M),await C()):h.code==="Period"&&(p.stop(),h.preventDefault()))};return window.addEventListener("keydown",H,!0),()=>window.removeEventListener("keydown",H,!0)}},[c,a,f,C,p,M]),m.default.createElement("div",{className:D.container,ref:b},m.default.createElement("div",{className:D.header},m.default.createElement("div",{className:D.buttons},m.default.createElement("button",{className:V(D.button,p.started?"sc-animate-pulse":""),onClick:()=>N()},m.default.createElement(U,{type:p.started?"pause":"play"})),m.default.createElement("button",{className:V(S?D.button:D.buttonDisabled),onClick:()=>C()},m.default.createElement(U,{type:"refresh"}))),T&&m.default.createElement("div",{className:D.error},T.message)),m.default.createElement("div",{className:D.body},O&&m.default.createElement(Q,{value:f,onChange:o,onViewChanged:R})))}function Ce(e){const{ready:r,connected:n,disconnected:u}=e,[d,l]=t.useState(!0),[c,f]=t.useState(E.WebMidi?.outputs||[]);return t.useEffect(()=>{E.enableWebMidi().then(()=>{E.WebMidi.addListener("connected",a=>{f([...E.WebMidi.outputs]),n?.(E.WebMidi,a)}),E.WebMidi.addListener("disconnected",a=>{f([...E.WebMidi.outputs]),u?.(E.WebMidi,a)}),r?.(E.WebMidi),l(!1)}).catch(a=>{if(a){console.error(a),console.warn("Web Midi could not be enabled..");return}})},[r,n,u,c]),{loading:d,outputs:c,outputByName:a=>E.WebMidi.getOutputByName(a)}}exports.CodeMirror=Q;exports.MiniRepl=ke;exports.cx=V;exports.flash=K;exports.useCycle=J;exports.useHighlighting=Y;exports.usePostMessage=G;exports.useRepl=X;exports.useWebMidi=Ce; +`:""}${d}`),[]),k=React.useMemo(()=>{if(o&&!o.includes("strudel disable-highlighting"))return(d,s)=>l?.(d,s,o)},[o,l]),T=React.useMemo(()=>o&&o.includes("strudel hide-header"),[o]),x=React.useMemo(()=>o&&o.includes("strudel hide-console"),[o]),g=useCycle({onDraw:k,onEvent:React.useCallback((d,s,N)=>{try{c?.(s),s.context.logs?.length&&s.context.logs.forEach(m);const{onTrigger:w,velocity:F}=s.context;if(w)w(d,s,N,1);else if(t){const H=util_mjs.getPlayableNoteValue(s);t.triggerAttackRelease(H,s.duration.valueOf(),d,F)}else throw new Error("no defaultSynth passed to useRepl.")}catch(w){console.warn(w),w.message="unplayable event: "+w?.message,m(w.message)}},[c,m,t]),onQuery:React.useCallback(d=>{try{return v?.query(d)||[]}catch(s){return console.warn(s),s.message="query error: "+s.message,R(s),[]}},[v]),onSchedule:React.useCallback((d,s)=>q(d),[]),ready:!!v&&!!o}),S=usePostMessage(({data:{from:d,type:s}})=>{s==="start"&&d!==n&&(g.setStarted(!1),a(void 0))}),D=React.useCallback(async(d=i)=>{if(o&&!f){R(void 0),g.start();return}try{_(!0);const s=await _eval.evaluate(d);g.start(),S({type:"start",from:n}),E(()=>s.pattern),r&&(window.location.hash="#"+encodeURIComponent(btoa(i))),C(generateHash(i)),R(void 0),a(d),_(!1)}catch(s){s.message="evaluation error: "+s.message,console.warn(s),R(s)}},[o,f,i,g,r,n,S]),q=(d,s)=>{d.length};return{hideHeader:T,hideConsole:x,pending:h,code:i,setCode:u,pattern:v,error:y,cycle:g,setPattern:E,dirty:f,log:p,togglePlay:()=>{g.started?g.stop():D()},setActiveCode:a,activateCode:D,activeCode:o,pushLog:m,hash:M}}function cx(...e){return e.filter(Boolean).join(" ")}let highlights=[],lastEnd;function useHighlighting({view:e,pattern:t,active:r}){React.useEffect(()=>{if(e)if(t&&r){let l=function(){try{const n=tone.Tone.getTransport().seconds,u=[Math.max(lastEnd||n,n-1/10),n+1/60];lastEnd=n+1/60,highlights=highlights.filter(a=>a.whole.end>n);const o=t.queryArc(...u).filter(a=>a.hasOnset());highlights=highlights.concat(o),e.dispatch({effects:setHighlights.of(highlights)})}catch{e.dispatch({effects:setHighlights.of([])})}c=requestAnimationFrame(l)},c=requestAnimationFrame(l);return()=>{cancelAnimationFrame(c)}}else highlights=[],e.dispatch({effects:setHighlights.of([])})},[t,r,e])}var tailwind="";const container="_container_3i85k_1",header="_header_3i85k_5",buttons="_buttons_3i85k_9",button="_button_3i85k_9",buttonDisabled="_buttonDisabled_3i85k_17",error="_error_3i85k_21",body="_body_3i85k_25";var styles={container,header,buttons,button,buttonDisabled,error,body};function Icon({type:e}){return React__default.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"sc-h-5 sc-w-5",viewBox:"0 0 20 20",fill:"currentColor"},{refresh:React__default.default.createElement("path",{fillRule:"evenodd",d:"M4 2a1 1 0 011 1v2.101a7.002 7.002 0 0111.601 2.566 1 1 0 11-1.885.666A5.002 5.002 0 005.999 7H9a1 1 0 010 2H4a1 1 0 01-1-1V3a1 1 0 011-1zm.008 9.057a1 1 0 011.276.61A5.002 5.002 0 0014.001 13H11a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0v-2.101a7.002 7.002 0 01-11.601-2.566 1 1 0 01.61-1.276z",clipRule:"evenodd"}),play:React__default.default.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM9.555 7.168A1 1 0 008 8v4a1 1 0 001.555.832l3-2a1 1 0 000-1.664l-3-2z",clipRule:"evenodd"}),pause:React__default.default.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zM7 8a1 1 0 012 0v4a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v4a1 1 0 102 0V8a1 1 0 00-1-1z",clipRule:"evenodd"})}[e])}function MiniRepl({tune:e,defaultSynth:t,hideOutsideView:r=!1,theme:c,init:l,onEvent:n,enableKeyboard:i}){const{code:u,setCode:o,pattern:a,activeCode:p,activateCode:b,evaluateOnly:y,error:R,cycle:h,dirty:_,togglePlay:M,stop:C}=useRepl({tune:e,defaultSynth:t,autolink:!1,onEvent:n});React.useEffect(()=>{l&&y()},[e,l]);const[v,E]=React.useState(),[f,m]=reactHookInview.useInView({threshold:.01}),k=React.useRef(),T=React.useMemo(()=>((m||!r)&&(k.current=!0),m||k.current),[m,r]);return useHighlighting({view:v,pattern:a,active:h.started&&!p?.includes("strudel disable-highlighting")}),React.useLayoutEffect(()=>{if(i){const x=async g=>{(g.ctrlKey||g.altKey)&&(g.code==="Enter"?(g.preventDefault(),flash(v),await b()):g.code==="Period"&&(h.stop(),g.preventDefault()))};return window.addEventListener("keydown",x,!0),()=>window.removeEventListener("keydown",x,!0)}},[i,a,u,b,h,v]),React__default.default.createElement("div",{className:styles.container,ref:f},React__default.default.createElement("div",{className:styles.header},React__default.default.createElement("div",{className:styles.buttons},React__default.default.createElement("button",{className:cx(styles.button,h.started?"sc-animate-pulse":""),onClick:()=>M()},React__default.default.createElement(Icon,{type:h.started?"pause":"play"})),React__default.default.createElement("button",{className:cx(_?styles.button:styles.buttonDisabled),onClick:()=>b()},React__default.default.createElement(Icon,{type:"refresh"}))),R&&React__default.default.createElement("div",{className:styles.error},R.message)),React__default.default.createElement("div",{className:styles.body},T&&React__default.default.createElement(CodeMirror,{value:u,onChange:o,onViewChanged:E})))}function useScheduler(e,t,r=.1){const[c,l]=React.useState(),n=React.useMemo(()=>new core.Scheduler({interval:r,onTrigger:t,onError:l}),[t,r]);return React.useEffect(()=>{e&&n?.setPattern(e)},[e,n]),{error:c,scheduler:n}}function useEvaluator(code,evalOnMount=!0){const[error,setError]=React.useState(),[activeCode,setActiveCode]=React.useState(code),[pattern,setPattern]=React.useState(),isDirty=code!==activeCode,evaluate=React.useCallback(()=>{try{const _pattern=eval(code);setActiveCode(activeCode),setPattern(_pattern),setError()}catch(e){setError(e),console.warn("eval error",e)}},[code,scheduler]),inited=React.useRef();return React.useEffect(()=>{!inited.current&&evalOnMount&&evaluate(),inited.current=!0},[evaluate,evalOnMount]),{error,evaluate,activeCode,pattern,isDirty}}function useWebMidi(e){const{ready:t,connected:r,disconnected:c}=e,[l,n]=React.useState(!0),[i,u]=React.useState(midi.WebMidi?.outputs||[]);return React.useEffect(()=>{midi.enableWebMidi().then(()=>{midi.WebMidi.addListener("connected",a=>{u([...midi.WebMidi.outputs]),r?.(midi.WebMidi,a)}),midi.WebMidi.addListener("disconnected",a=>{u([...midi.WebMidi.outputs]),c?.(midi.WebMidi,a)}),t?.(midi.WebMidi),n(!1)}).catch(a=>{if(a){console.error(a),console.warn("Web Midi could not be enabled..");return}})},[t,r,c,i]),{loading:l,outputs:i,outputByName:a=>midi.WebMidi.getOutputByName(a)}}exports.CodeMirror=CodeMirror;exports.MiniRepl=MiniRepl;exports.cx=cx;exports.flash=flash;exports.useCycle=useCycle;exports.useEvaluator=useEvaluator;exports.useHighlighting=useHighlighting;exports.usePostMessage=usePostMessage;exports.useRepl=useRepl;exports.useScheduler=useScheduler;exports.useWebMidi=useWebMidi; diff --git a/packages/react/dist/index.es.js b/packages/react/dist/index.es.js index c3540f7d..0a37ff09 100644 --- a/packages/react/dist/index.es.js +++ b/packages/react/dist/index.es.js @@ -9,7 +9,7 @@ import { useInView } from 'react-hook-inview'; import { evaluate } from '@strudel.cycles/eval'; import { getPlayableNoteValue } from '@strudel.cycles/core/util.mjs'; import { Tone } from '@strudel.cycles/tone'; -import { TimeSpan, State } from '@strudel.cycles/core'; +import { TimeSpan, State, Scheduler } from '@strudel.cycles/core'; import { WebMidi, enableWebMidi } from '@strudel.cycles/midi'; var strudelTheme = createTheme({ @@ -552,6 +552,44 @@ function MiniRepl({ tune, defaultSynth, hideOutsideView = false, theme, init, on }))); } +function useScheduler(pattern, defaultOutput, interval = 0.1) { + const [error, setError] = useState(); + const scheduler = useMemo( + () => new Scheduler({ interval, onTrigger: defaultOutput, onError: setError }), + [defaultOutput, interval] + ); + useEffect(() => { + pattern && scheduler?.setPattern(pattern); + }, [pattern, scheduler]); + return { error, scheduler }; +} + +function useEvaluator(code, evalOnMount = true) { + const [error, setError] = useState(); + const [activeCode, setActiveCode] = useState(code); + const [pattern, setPattern] = useState(); + const isDirty = code !== activeCode; + const evaluate = useCallback(() => { + try { + const _pattern = eval(code); + setActiveCode(activeCode); + setPattern(_pattern); + setError(); + } catch (err) { + setError(err); + console.warn("eval error", err); + } + }, [code, scheduler]); + const inited = useRef(); + useEffect(() => { + if (!inited.current && evalOnMount) { + evaluate(); + } + inited.current = true; + }, [evaluate, evalOnMount]); + return { error, evaluate, activeCode, pattern, isDirty }; +} + /* useWebMidi.js - Copyright (C) 2022 Strudel contributors - see @@ -591,4 +629,4 @@ function useWebMidi(props) { return { loading, outputs, outputByName }; } -export { CodeMirror, MiniRepl, cx, flash, useCycle, useHighlighting, usePostMessage, useRepl, useWebMidi }; +export { CodeMirror, MiniRepl, cx, flash, useCycle, useEvaluator, useHighlighting, usePostMessage, useRepl, useScheduler, useWebMidi }; diff --git a/packages/react/src/index.js b/packages/react/src/index.js index 7ba993a7..b15bdf05 100644 --- a/packages/react/src/index.js +++ b/packages/react/src/index.js @@ -6,5 +6,7 @@ export { default as useCycle } from './hooks/useCycle'; export { default as useHighlighting } from './hooks/useHighlighting'; export { default as usePostMessage } from './hooks/usePostMessage'; export { default as useRepl } from './hooks/useRepl'; +export { default as useScheduler } from './hooks/useScheduler'; +export { default as useEvaluator } from './hooks/useEvaluator'; export { default as cx } from './cx'; export { useWebMidi } from './hooks/useWebMidi'; From 46aa3d275a72c843076cf0c8cc35ad782b0cd7ee Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Wed, 17 Aug 2022 23:58:47 +0200 Subject: [PATCH 08/45] package-lock --- package-lock.json | 160 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 111 insertions(+), 49 deletions(-) diff --git a/package-lock.json b/package-lock.json index b702d82b..73d2c599 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@strudel.cycles/monorepo", - "version": "0.0.1", + "version": "0.0.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@strudel.cycles/monorepo", - "version": "0.0.1", + "version": "0.0.4", "license": "AGPL-3.0-or-later", "workspaces": [ "packages/*" @@ -12090,11 +12090,44 @@ }, "packages/core": { "name": "@strudel.cycles/core", - "version": "0.1.2", + "version": "0.2.0", "license": "AGPL-3.0-or-later", "dependencies": { "bjork": "^0.0.1", - "fraction.js": "^4.2.0" + "fraction.js": "^4.2.0", + "react-dom": "^18.2.0" + } + }, + "packages/core/node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "packages/core/node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "packages/core/node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" } }, "packages/embed": { @@ -12104,10 +12137,10 @@ }, "packages/eval": { "name": "@strudel.cycles/eval", - "version": "0.1.3", + "version": "0.2.0", "license": "AGPL-3.0-or-later", "dependencies": { - "@strudel.cycles/core": "^0.1.2", + "@strudel.cycles/core": "^0.2.0", "estraverse": "^5.3.0", "shift-ast": "^6.1.0", "shift-codegen": "^7.0.3", @@ -12131,22 +12164,22 @@ }, "packages/midi": { "name": "@strudel.cycles/midi", - "version": "0.1.3", + "version": "0.2.0", "license": "AGPL-3.0-or-later", "dependencies": { - "@strudel.cycles/tone": "^0.1.3", + "@strudel.cycles/tone": "^0.2.0", "tone": "^14.7.77", "webmidi": "^2.5.2" } }, "packages/mini": { "name": "@strudel.cycles/mini", - "version": "0.1.3", + "version": "0.2.0", "license": "AGPL-3.0-or-later", "dependencies": { - "@strudel.cycles/core": "^0.1.2", - "@strudel.cycles/eval": "^0.1.3", - "@strudel.cycles/tone": "^0.1.3" + "@strudel.cycles/core": "^0.2.0", + "@strudel.cycles/eval": "^0.2.0", + "@strudel.cycles/tone": "^0.2.0" }, "devDependencies": { "peggy": "^2.0.1" @@ -12162,13 +12195,13 @@ }, "packages/react": { "name": "@strudel.cycles/react", - "version": "0.1.4", + "version": "0.2.0", "license": "AGPL-3.0-or-later", "dependencies": { "@codemirror/lang-javascript": "^6.0.2", - "@strudel.cycles/core": "^0.1.2", - "@strudel.cycles/eval": "^0.1.3", - "@strudel.cycles/tone": "^0.1.3", + "@strudel.cycles/core": "^0.2.0", + "@strudel.cycles/eval": "^0.2.0", + "@strudel.cycles/tone": "^0.2.0", "@uiw/codemirror-themes": "^4.11.4", "@uiw/react-codemirror": "^4.11.4", "react-hook-inview": "^4.5.0" @@ -12260,11 +12293,11 @@ }, "packages/soundfonts": { "name": "@strudel.cycles/soundfonts", - "version": "0.1.1", + "version": "0.2.1", "license": "AGPL-3.0-or-later", "dependencies": { - "@strudel.cycles/core": "*", - "@strudel.cycles/webaudio": "^0.1.4", + "@strudel.cycles/core": "^0.2.0", + "@strudel.cycles/webaudio": "^0.2.0", "sfumato": "^0.1.2", "soundfont2": "^0.4.0" }, @@ -12292,10 +12325,10 @@ }, "packages/tonal": { "name": "@strudel.cycles/tonal", - "version": "0.1.3", + "version": "0.2.0", "license": "AGPL-3.0-or-later", "dependencies": { - "@strudel.cycles/core": "^0.1.2", + "@strudel.cycles/core": "^0.2.0", "@tonaljs/tonal": "^4.6.5", "webmidi": "^3.0.15" } @@ -12317,10 +12350,10 @@ }, "packages/tone": { "name": "@strudel.cycles/tone", - "version": "0.1.3", + "version": "0.2.0", "license": "AGPL-3.0-or-later", "dependencies": { - "@strudel.cycles/core": "^0.1.2", + "@strudel.cycles/core": "^0.2.0", "@tonejs/piano": "^0.2.1", "chord-voicings": "^0.0.1", "tone": "^14.7.77" @@ -12328,27 +12361,27 @@ }, "packages/webaudio": { "name": "@strudel.cycles/webaudio", - "version": "0.1.4", + "version": "0.2.0", "license": "AGPL-3.0-or-later", "dependencies": { - "@strudel.cycles/core": "^0.1.2" + "@strudel.cycles/core": "^0.2.0" } }, "packages/webdirt": { "name": "@strudel.cycles/webdirt", - "version": "0.1.2", + "version": "0.2.0", "license": "AGPL-3.0-or-later", "dependencies": { - "@strudel.cycles/core": "^0.1.2", + "@strudel.cycles/core": "^0.2.0", "WebDirt": "github:dktr0/WebDirt" } }, "packages/xen": { "name": "@strudel.cycles/xen", - "version": "0.1.3", + "version": "0.2.0", "license": "AGPL-3.0-or-later", "dependencies": { - "@strudel.cycles/core": "^0.1.2" + "@strudel.cycles/core": "^0.2.0" } } }, @@ -14043,7 +14076,36 @@ "version": "file:packages/core", "requires": { "bjork": "^0.0.1", - "fraction.js": "^4.2.0" + "fraction.js": "^4.2.0", + "react-dom": "*" + }, + "dependencies": { + "react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "peer": true, + "requires": { + "loose-envify": "^1.1.0" + } + }, + "react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "requires": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + } + }, + "scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "requires": { + "loose-envify": "^1.1.0" + } + } } }, "@strudel.cycles/embed": { @@ -14052,7 +14114,7 @@ "@strudel.cycles/eval": { "version": "file:packages/eval", "requires": { - "@strudel.cycles/core": "^0.1.2", + "@strudel.cycles/core": "^0.2.0", "estraverse": "^5.3.0", "shift-ast": "^6.1.0", "shift-codegen": "^7.0.3", @@ -14064,7 +14126,7 @@ "@strudel.cycles/midi": { "version": "file:packages/midi", "requires": { - "@strudel.cycles/tone": "^0.1.3", + "@strudel.cycles/tone": "^0.2.0", "tone": "^14.7.77", "webmidi": "^2.5.2" } @@ -14072,9 +14134,9 @@ "@strudel.cycles/mini": { "version": "file:packages/mini", "requires": { - "@strudel.cycles/core": "^0.1.2", - "@strudel.cycles/eval": "^0.1.3", - "@strudel.cycles/tone": "^0.1.3", + "@strudel.cycles/core": "^0.2.0", + "@strudel.cycles/eval": "^0.2.0", + "@strudel.cycles/tone": "^0.2.0", "peggy": "^2.0.1" } }, @@ -14088,9 +14150,9 @@ "version": "file:packages/react", "requires": { "@codemirror/lang-javascript": "^6.0.2", - "@strudel.cycles/core": "^0.1.2", - "@strudel.cycles/eval": "^0.1.3", - "@strudel.cycles/tone": "^0.1.3", + "@strudel.cycles/core": "^0.2.0", + "@strudel.cycles/eval": "^0.2.0", + "@strudel.cycles/tone": "^0.2.0", "@types/react": "^17.0.2", "@types/react-dom": "^17.0.2", "@uiw/codemirror-themes": "^4.11.4", @@ -14163,11 +14225,11 @@ "@strudel.cycles/soundfonts": { "version": "file:packages/soundfonts", "requires": { - "@strudel.cycles/core": "*", - "@strudel.cycles/webaudio": "^0.1.4", + "@strudel.cycles/core": "^0.2.0", + "@strudel.cycles/webaudio": "^0.2.0", "node-fetch": "^3.2.6", "sfumato": "^0.1.2", - "soundfont2": "*" + "soundfont2": "^0.4.0" }, "dependencies": { "node-fetch": { @@ -14186,7 +14248,7 @@ "@strudel.cycles/tonal": { "version": "file:packages/tonal", "requires": { - "@strudel.cycles/core": "^0.1.2", + "@strudel.cycles/core": "^0.2.0", "@tonaljs/tonal": "^4.6.5", "webmidi": "^3.0.15" }, @@ -14206,7 +14268,7 @@ "@strudel.cycles/tone": { "version": "file:packages/tone", "requires": { - "@strudel.cycles/core": "^0.1.2", + "@strudel.cycles/core": "^0.2.0", "@tonejs/piano": "^0.2.1", "chord-voicings": "^0.0.1", "tone": "^14.7.77" @@ -14215,20 +14277,20 @@ "@strudel.cycles/webaudio": { "version": "file:packages/webaudio", "requires": { - "@strudel.cycles/core": "^0.1.2" + "@strudel.cycles/core": "^0.2.0" } }, "@strudel.cycles/webdirt": { "version": "file:packages/webdirt", "requires": { - "@strudel.cycles/core": "^0.1.2", + "@strudel.cycles/core": "^0.2.0", "WebDirt": "github:dktr0/WebDirt" } }, "@strudel.cycles/xen": { "version": "file:packages/xen", "requires": { - "@strudel.cycles/core": "^0.1.2" + "@strudel.cycles/core": "^0.2.0" } }, "@tonaljs/abc-notation": { @@ -19717,9 +19779,9 @@ "version": "file:packages/react", "requires": { "@codemirror/lang-javascript": "^6.0.2", - "@strudel.cycles/core": "^0.1.2", - "@strudel.cycles/eval": "^0.1.3", - "@strudel.cycles/tone": "^0.1.3", + "@strudel.cycles/core": "^0.2.0", + "@strudel.cycles/eval": "^0.2.0", + "@strudel.cycles/tone": "^0.2.0", "@types/react": "^17.0.2", "@types/react-dom": "^17.0.2", "@uiw/codemirror-themes": "^4.11.4", From 1941b1ff65df969cc63e634207fe365b1b7fa7a9 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Wed, 17 Aug 2022 23:59:40 +0200 Subject: [PATCH 09/45] add react nano-repl example --- packages/react/examples/nano-repl/.gitignore | 24 + packages/react/examples/nano-repl/index.html | 12 + .../examples/nano-repl/package-lock.json | 2338 +++++++++++++++++ .../react/examples/nano-repl/package.json | 21 + packages/react/examples/nano-repl/src/App.jsx | 27 + .../react/examples/nano-repl/src/main.jsx | 9 + .../react/examples/nano-repl/vite.config.js | 7 + 7 files changed, 2438 insertions(+) create mode 100644 packages/react/examples/nano-repl/.gitignore create mode 100644 packages/react/examples/nano-repl/index.html create mode 100644 packages/react/examples/nano-repl/package-lock.json create mode 100644 packages/react/examples/nano-repl/package.json create mode 100644 packages/react/examples/nano-repl/src/App.jsx create mode 100644 packages/react/examples/nano-repl/src/main.jsx create mode 100644 packages/react/examples/nano-repl/vite.config.js diff --git a/packages/react/examples/nano-repl/.gitignore b/packages/react/examples/nano-repl/.gitignore new file mode 100644 index 00000000..a547bf36 --- /dev/null +++ b/packages/react/examples/nano-repl/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/packages/react/examples/nano-repl/index.html b/packages/react/examples/nano-repl/index.html new file mode 100644 index 00000000..4d5e8670 --- /dev/null +++ b/packages/react/examples/nano-repl/index.html @@ -0,0 +1,12 @@ + + + + + + Strudel Nano REPL + + +
+ + + diff --git a/packages/react/examples/nano-repl/package-lock.json b/packages/react/examples/nano-repl/package-lock.json new file mode 100644 index 00000000..3e165f2b --- /dev/null +++ b/packages/react/examples/nano-repl/package-lock.json @@ -0,0 +1,2338 @@ +{ + "name": "nano-repl", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "nano-repl", + "version": "0.0.0", + "dependencies": { + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.0.17", + "@types/react-dom": "^18.0.6", + "@vitejs/plugin-react": "^2.0.1", + "vite": "^3.0.7" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", + "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", + "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.10", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10", + "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/generator": { + "version": "7.18.12", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz", + "integrity": "sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.10", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", + "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.18.8", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", + "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.6", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", + "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", + "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", + "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", + "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.18.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz", + "integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.10.tgz", + "integrity": "sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "dev": true, + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", + "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.18.6.tgz", + "integrity": "sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.18.11", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.11.tgz", + "integrity": "sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.18.11", + "@babel/types": "^7.18.10", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", + "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", + "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", + "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.0.17", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.17.tgz", + "integrity": "sha512-38ETy4tL+rn4uQQi7mB81G7V1g0u2ryquNmsVIOKUAEIDK+3CUjZ6rSRpdvS99dNBnkLFL83qfmtLacGOTIhwQ==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.6.tgz", + "integrity": "sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", + "dev": true + }, + "node_modules/@vitejs/plugin-react": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-2.0.1.tgz", + "integrity": "sha512-uINzNHmjrbunlFtyVkST6lY1ewSfz/XwLufG0PIqvLGnpk2nOIOa/1CACTDNcKi1/RwaCzJLmsXwm1NsUVV/NA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.18.10", + "@babel/plugin-transform-react-jsx": "^7.18.10", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-jsx-self": "^7.18.6", + "@babel/plugin-transform-react-jsx-source": "^7.18.6", + "magic-string": "^0.26.2", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^3.0.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==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/browserslist": { + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.5" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001378", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001378.tgz", + "integrity": "sha512-JVQnfoO7FK7WvU4ZkBRbPjaot4+YqxogSDosHv0Hv5mWpUESmN+UubMU6L/hGz8QlQ2aY5U0vR6MOs6j/CXpNA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "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==", + "dev": 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==", + "dev": 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": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/csstype": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", + "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.222", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.222.tgz", + "integrity": "sha512-gEM2awN5HZknWdLbngk4uQCVfhucFAfFzuchP3wM3NN6eow1eDU0dFy2kts43FB20ZfhVFF0jmFSTb1h5OhyIg==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", + "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/linux-loong64": "0.14.54", + "esbuild-android-64": "0.14.54", + "esbuild-android-arm64": "0.14.54", + "esbuild-darwin-64": "0.14.54", + "esbuild-darwin-arm64": "0.14.54", + "esbuild-freebsd-64": "0.14.54", + "esbuild-freebsd-arm64": "0.14.54", + "esbuild-linux-32": "0.14.54", + "esbuild-linux-64": "0.14.54", + "esbuild-linux-arm": "0.14.54", + "esbuild-linux-arm64": "0.14.54", + "esbuild-linux-mips64le": "0.14.54", + "esbuild-linux-ppc64le": "0.14.54", + "esbuild-linux-riscv64": "0.14.54", + "esbuild-linux-s390x": "0.14.54", + "esbuild-netbsd-64": "0.14.54", + "esbuild-openbsd-64": "0.14.54", + "esbuild-sunos-64": "0.14.54", + "esbuild-windows-32": "0.14.54", + "esbuild-windows-64": "0.14.54", + "esbuild-windows-arm64": "0.14.54" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz", + "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz", + "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz", + "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz", + "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz", + "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz", + "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz", + "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", + "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz", + "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz", + "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz", + "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz", + "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz", + "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz", + "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz", + "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz", + "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz", + "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz", + "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", + "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz", + "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": 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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "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": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==" + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": 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==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/magic-string": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", + "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" + } + }, + "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 + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "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==", + "dev": true + }, + "node_modules/postcss": { + "version": "8.4.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rollup": { + "version": "2.77.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.77.3.tgz", + "integrity": "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==", + "dev": 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==", + "dev": true + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", + "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/vite": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.0.8.tgz", + "integrity": "sha512-AOZ4eN7mrkJiOLuw8IA7piS4IdOQyQCA81GxGsAQvAZzMRi9ZwGB3TOaYsj4uLAWK46T5L4AfQ6InNGlxX30IQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.14.47", + "postcss": "^8.4.16", + "resolve": "^1.22.1", + "rollup": ">=2.75.6 <2.77.0 || ~2.77.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "less": "*", + "sass": "*", + "stylus": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "terser": { + "optional": true + } + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", + "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", + "dev": true + }, + "@babel/core": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", + "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.10", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + } + }, + "@babel/generator": { + "version": "7.18.12", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz", + "integrity": "sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==", + "dev": true, + "requires": { + "@babel/types": "^7.18.10", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", + "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.18.8", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", + "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", + "dev": true, + "requires": { + "@babel/template": "^7.18.6", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", + "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", + "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", + "dev": true + }, + "@babel/helper-simple-access": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", + "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true + }, + "@babel/helpers": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", + "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", + "dev": true, + "requires": { + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.18.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz", + "integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==", + "dev": true + }, + "@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.10.tgz", + "integrity": "sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.18.10" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "dev": true, + "requires": { + "@babel/plugin-transform-react-jsx": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", + "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.18.6.tgz", + "integrity": "sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + } + }, + "@babel/traverse": { + "version": "7.18.11", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.11.tgz", + "integrity": "sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.18.11", + "@babel/types": "^7.18.10", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", + "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + } + }, + "@esbuild/linux-loong64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", + "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==", + "dev": true, + "optional": true + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", + "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "dev": true + }, + "@types/react": { + "version": "18.0.17", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.17.tgz", + "integrity": "sha512-38ETy4tL+rn4uQQi7mB81G7V1g0u2ryquNmsVIOKUAEIDK+3CUjZ6rSRpdvS99dNBnkLFL83qfmtLacGOTIhwQ==", + "dev": true, + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-dom": { + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.6.tgz", + "integrity": "sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", + "dev": true + }, + "@vitejs/plugin-react": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-2.0.1.tgz", + "integrity": "sha512-uINzNHmjrbunlFtyVkST6lY1ewSfz/XwLufG0PIqvLGnpk2nOIOa/1CACTDNcKi1/RwaCzJLmsXwm1NsUVV/NA==", + "dev": true, + "requires": { + "@babel/core": "^7.18.10", + "@babel/plugin-transform-react-jsx": "^7.18.10", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-jsx-self": "^7.18.6", + "@babel/plugin-transform-react-jsx-source": "^7.18.6", + "magic-string": "^0.26.2", + "react-refresh": "^0.14.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==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "browserslist": { + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.5" + } + }, + "caniuse-lite": { + "version": "1.0.30001378", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001378.tgz", + "integrity": "sha512-JVQnfoO7FK7WvU4ZkBRbPjaot4+YqxogSDosHv0Hv5mWpUESmN+UubMU6L/hGz8QlQ2aY5U0vR6MOs6j/CXpNA==", + "dev": true + }, + "chalk": { + "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", + "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==", + "dev": 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": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "csstype": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", + "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "electron-to-chromium": { + "version": "1.4.222", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.222.tgz", + "integrity": "sha512-gEM2awN5HZknWdLbngk4uQCVfhucFAfFzuchP3wM3NN6eow1eDU0dFy2kts43FB20ZfhVFF0jmFSTb1h5OhyIg==", + "dev": true + }, + "esbuild": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", + "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", + "dev": true, + "requires": { + "@esbuild/linux-loong64": "0.14.54", + "esbuild-android-64": "0.14.54", + "esbuild-android-arm64": "0.14.54", + "esbuild-darwin-64": "0.14.54", + "esbuild-darwin-arm64": "0.14.54", + "esbuild-freebsd-64": "0.14.54", + "esbuild-freebsd-arm64": "0.14.54", + "esbuild-linux-32": "0.14.54", + "esbuild-linux-64": "0.14.54", + "esbuild-linux-arm": "0.14.54", + "esbuild-linux-arm64": "0.14.54", + "esbuild-linux-mips64le": "0.14.54", + "esbuild-linux-ppc64le": "0.14.54", + "esbuild-linux-riscv64": "0.14.54", + "esbuild-linux-s390x": "0.14.54", + "esbuild-netbsd-64": "0.14.54", + "esbuild-openbsd-64": "0.14.54", + "esbuild-sunos-64": "0.14.54", + "esbuild-windows-32": "0.14.54", + "esbuild-windows-64": "0.14.54", + "esbuild-windows-arm64": "0.14.54" + } + }, + "esbuild-android-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz", + "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz", + "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz", + "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz", + "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz", + "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz", + "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz", + "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", + "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz", + "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz", + "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz", + "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz", + "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz", + "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz", + "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz", + "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz", + "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz", + "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz", + "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", + "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz", + "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==", + "dev": true, + "optional": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "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": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": 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==", + "dev": true + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "magic-string": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", + "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "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 + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true + }, + "node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "postcss": { + "version": "8.4.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "dev": true, + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "requires": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + } + }, + "react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rollup": { + "version": "2.77.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.77.3.tgz", + "integrity": "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==", + "dev": 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==", + "dev": true + }, + "scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "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" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", + "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "vite": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.0.8.tgz", + "integrity": "sha512-AOZ4eN7mrkJiOLuw8IA7piS4IdOQyQCA81GxGsAQvAZzMRi9ZwGB3TOaYsj4uLAWK46T5L4AfQ6InNGlxX30IQ==", + "dev": true, + "requires": { + "esbuild": "^0.14.47", + "fsevents": "~2.3.2", + "postcss": "^8.4.16", + "resolve": "^1.22.1", + "rollup": ">=2.75.6 <2.77.0 || ~2.77.0" + } + } + } +} diff --git a/packages/react/examples/nano-repl/package.json b/packages/react/examples/nano-repl/package.json new file mode 100644 index 00000000..c400c316 --- /dev/null +++ b/packages/react/examples/nano-repl/package.json @@ -0,0 +1,21 @@ +{ + "name": "nano-repl", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.0.17", + "@types/react-dom": "^18.0.6", + "@vitejs/plugin-react": "^2.0.1", + "vite": "^3.0.7" + } +} \ No newline at end of file diff --git a/packages/react/examples/nano-repl/src/App.jsx b/packages/react/examples/nano-repl/src/App.jsx new file mode 100644 index 00000000..bdcbf8ee --- /dev/null +++ b/packages/react/examples/nano-repl/src/App.jsx @@ -0,0 +1,27 @@ +import * as strudel from '@strudel.cycles/core'; +import * as webaudio from '@strudel.cycles/webaudio'; +import { webaudioOutput } from '@strudel.cycles/webaudio'; +import { useState } from 'react'; +import useScheduler from '../../../src/hooks/useScheduler'; +import useEvaluator from '../../../src/hooks/useEvaluator'; + +Object.assign(globalThis, strudel, webaudio); // add strudel to eval scope + +function App() { + const [code, setCode] = useState(`seq('c3','eb3').note()`); + const { evaluate, pattern, isDirty, error: evaluatorError } = useEvaluator(code); + const { scheduler, error: schedulerError } = useScheduler(pattern, webaudioOutput); + const error = evaluatorError || schedulerError; + return ( +
+ evaluate()); - document.getElementById('start').addEventListener('click', () => { - ctx.resume(); + document.getElementById('start').addEventListener('click', async () => { + await ctx.resume(); scheduler.start(); }); document.getElementById('stop').addEventListener('click', () => scheduler.stop()); diff --git a/repl/src/App.jsx b/repl/src/App.jsx index fd464d2b..e04e8b18 100644 --- a/repl/src/App.jsx +++ b/repl/src/App.jsx @@ -183,8 +183,8 @@ function App() {
- {isDirty && } + {isDirty && }
{error &&

error {error.message}

} diff --git a/packages/react/src/App.jsx b/packages/react/src/App.jsx index f9542529..b22516da 100644 --- a/packages/react/src/App.jsx +++ b/packages/react/src/App.jsx @@ -1,8 +1,7 @@ import React from 'react'; import { MiniRepl } from './components/MiniRepl'; import 'tailwindcss/tailwind.css'; -import { evalScope } from '@strudel.cycles/eval'; -import { controls } from '@strudel.cycles/core'; +import { controls, evalScope } from '@strudel.cycles/core'; evalScope( controls, diff --git a/packages/react/src/hooks/useStrudel.mjs b/packages/react/src/hooks/useStrudel.mjs index 250f3b51..571fb8e6 100644 --- a/packages/react/src/hooks/useStrudel.mjs +++ b/packages/react/src/hooks/useStrudel.mjs @@ -1,7 +1,7 @@ // import { Scheduler } from '@strudel.cycles/core'; import { useRef, useCallback, useEffect, useMemo, useState } from 'react'; -import { evaluate as _evaluate } from '@strudel.cycles/eval'; -import { Cyclist } from '@strudel.cycles/core/cyclist.mjs'; +import shapeshifter from '@strudel.cycles/eval/shapeshifter.mjs'; +import { repl } from '@strudel.cycles/core/repl.mjs'; function useStrudel({ defaultOutput, interval, getTime, code, evalOnMount = false }) { // scheduler @@ -10,37 +10,33 @@ function useStrudel({ defaultOutput, interval, getTime, code, evalOnMount = fals const [activeCode, setActiveCode] = useState(code); const [pattern, setPattern] = useState(); const isDirty = code !== activeCode; - // TODO: how / when to remove schedulerError? - const scheduler = useMemo( - // () => new Scheduler({ interval, onTrigger: defaultOutput, onError: setSchedulerError, getTime }), - () => new Cyclist({ interval, onTrigger: defaultOutput, onError: setSchedulerError, getTime }), - [defaultOutput, interval], + const { scheduler, evaluate: _evaluate } = useMemo( + () => + repl({ + interval, + defaultOutput, + onSchedulerError: setSchedulerError, + onEvalError: setEvalError, + getTime, + transpiler: shapeshifter, + onEval: ({ pattern: _pattern, code }) => { + setActiveCode(code); + setPattern(_pattern); + setEvalError(); + }, + onEvalError: setEvalError, + }), + [defaultOutput, interval, getTime], ); - const evaluate = useCallback(async () => { - if (!code) { - console.log('no code..'); - return; - } - try { - // TODO: let user inject custom eval function? - const { pattern: _pattern } = await _evaluate(code); - setActiveCode(code); - scheduler?.setPattern(_pattern); - setPattern(_pattern); - setEvalError(); - } catch (err) { - setEvalError(err); - console.warn('eval error', err); - } - }, [code, scheduler]); + const evaluate = useCallback(() => _evaluate(code), [_evaluate, code]); const inited = useRef(); useEffect(() => { - if (!inited.current && evalOnMount) { + if (!inited.current && evalOnMount && code) { inited.current = true; evaluate(); } - }, [evaluate, evalOnMount]); + }, [evaluate, evalOnMount, code]); return { schedulerError, scheduler, evalError, evaluate, activeCode, isDirty, pattern }; } diff --git a/repl/package.json b/repl/package.json index 44858bb5..6f3c06a9 100644 --- a/repl/package.json +++ b/repl/package.json @@ -2,7 +2,6 @@ "name": "@strudel.cycles/repl", "private": true, "version": "0.0.0", - "type": "module", "scripts": { "dev": "vite --host", "start": "vite", diff --git a/repl/src/App.jsx b/repl/src/App.jsx index 7184289d..b91f43dc 100644 --- a/repl/src/App.jsx +++ b/repl/src/App.jsx @@ -4,7 +4,7 @@ Copyright (C) 2022 Strudel contributors - see . */ -import { evalScope, evaluate } from '@strudel.cycles/eval'; +import { evaluate } from '@strudel.cycles/eval'; import { CodeMirror, cx, flash, useHighlighting, useRepl, useWebMidi } from '@strudel.cycles/react'; import { cleanupDraw, cleanupUi, Tone } from '@strudel.cycles/tone'; import React, { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react'; @@ -14,7 +14,7 @@ import * as tunes from './tunes.mjs'; import { prebake } from './prebake.mjs'; import * as WebDirt from 'WebDirt'; import { resetLoadedSamples, getAudioContext } from '@strudel.cycles/webaudio'; -import { controls } from '@strudel.cycles/core'; +import { controls, evalScope } from '@strudel.cycles/core'; import { createClient } from '@supabase/supabase-js'; import { nanoid } from 'nanoid'; diff --git a/repl/src/runtime.mjs b/repl/src/runtime.mjs index 7a2e60f0..1da561f9 100644 --- a/repl/src/runtime.mjs +++ b/repl/src/runtime.mjs @@ -4,7 +4,7 @@ // import * as tunes from './tunes.mjs'; import { evaluate } from '@strudel.cycles/eval'; -import { evalScope } from '@strudel.cycles/eval'; +import { evalScope } from '@strudel.cycles/core'; import * as strudel from '@strudel.cycles/core'; import * as webaudio from '@strudel.cycles/webaudio'; import controls from '@strudel.cycles/core/controls.mjs'; diff --git a/tutorial/MiniRepl.jsx b/tutorial/MiniRepl.jsx index 840e6077..f7d32df5 100644 --- a/tutorial/MiniRepl.jsx +++ b/tutorial/MiniRepl.jsx @@ -1,6 +1,5 @@ -import { evalScope } from '@strudel.cycles/eval'; +import { evalScope, controls } from '@strudel.cycles/core'; import { MiniRepl as _MiniRepl } from '@strudel.cycles/react'; -import controls from '@strudel.cycles/core/controls.mjs'; import { samples } from '@strudel.cycles/webaudio'; import { prebake } from '../repl/src/prebake.mjs'; From 09045d5387061a8c8bb548da39a4107c03e50c57 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 6 Nov 2022 15:50:53 +0100 Subject: [PATCH 41/45] add vite vanilla js repl example --- packages/core/cyclist.mjs | 5 +- .../core/examples/vite-vanilla-repl/README.md | 8 + .../examples/vite-vanilla-repl/index.html | 35 + .../core/examples/vite-vanilla-repl/main.js | 23 + .../vite-vanilla-repl/package-lock.json | 885 ++++++++++++++++++ .../examples/vite-vanilla-repl/package.json | 14 + .../core/examples/vite-vanilla-repl/tune.mjs | 31 + packages/core/index.mjs | 1 + packages/core/repl.mjs | 6 +- 9 files changed, 1004 insertions(+), 4 deletions(-) create mode 100644 packages/core/examples/vite-vanilla-repl/README.md create mode 100644 packages/core/examples/vite-vanilla-repl/index.html create mode 100644 packages/core/examples/vite-vanilla-repl/main.js create mode 100644 packages/core/examples/vite-vanilla-repl/package-lock.json create mode 100644 packages/core/examples/vite-vanilla-repl/package.json create mode 100644 packages/core/examples/vite-vanilla-repl/tune.mjs diff --git a/packages/core/cyclist.mjs b/packages/core/cyclist.mjs index c79cb2ae..e462f96b 100644 --- a/packages/core/cyclist.mjs +++ b/packages/core/cyclist.mjs @@ -66,8 +66,11 @@ export class Cyclist { this.clock.stop(); this.started = false; } - setPattern(pat) { + setPattern(pat, autostart = false) { this.pattern = pat; + if (autostart && !this.started) { + this.start(); + } } setCps(cps = 1) { this.cps = cps; diff --git a/packages/core/examples/vite-vanilla-repl/README.md b/packages/core/examples/vite-vanilla-repl/README.md new file mode 100644 index 00000000..d7f65720 --- /dev/null +++ b/packages/core/examples/vite-vanilla-repl/README.md @@ -0,0 +1,8 @@ +# vite-vanilla-repl + +This folder demonstrates how to set up a strudel repl using vite and vanilla JS. Run it using: + +```sh +npm i +npm run dev +``` diff --git a/packages/core/examples/vite-vanilla-repl/index.html b/packages/core/examples/vite-vanilla-repl/index.html new file mode 100644 index 00000000..df41f55e --- /dev/null +++ b/packages/core/examples/vite-vanilla-repl/index.html @@ -0,0 +1,35 @@ + + + + + + Vite Vanilla Strudel REPL + + +
+ +
+ +
+ + + diff --git a/packages/core/examples/vite-vanilla-repl/main.js b/packages/core/examples/vite-vanilla-repl/main.js new file mode 100644 index 00000000..cc50e063 --- /dev/null +++ b/packages/core/examples/vite-vanilla-repl/main.js @@ -0,0 +1,23 @@ +import { controls, repl, evalScope } from '@strudel.cycles/core'; +import { getAudioContext, webaudioOutput } from '@strudel.cycles/webaudio'; +import shapeshifter from '@strudel.cycles/eval/shapeshifter.mjs'; +import tune from './tune.mjs'; + +const ctx = getAudioContext(); +const input = document.getElementById('text'); +input.innerHTML = tune; + +evalScope( + controls, + import('@strudel.cycles/core'), + import('@strudel.cycles/mini'), + import('@strudel.cycles/webaudio'), + import('@strudel.cycles/tonal'), +); + +const { evaluate } = repl({ + defaultOutput: webaudioOutput, + getTime: () => ctx.currentTime, + transpiler: shapeshifter, +}); +document.getElementById('start').addEventListener('click', () => evaluate(input.value)); diff --git a/packages/core/examples/vite-vanilla-repl/package-lock.json b/packages/core/examples/vite-vanilla-repl/package-lock.json new file mode 100644 index 00000000..0d985a7f --- /dev/null +++ b/packages/core/examples/vite-vanilla-repl/package-lock.json @@ -0,0 +1,885 @@ +{ + "name": "vite-vanilla-repl", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "vite-vanilla-repl", + "version": "0.0.0", + "devDependencies": { + "vite": "^3.2.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.13.tgz", + "integrity": "sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.13.tgz", + "integrity": "sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.13.tgz", + "integrity": "sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.15.13", + "@esbuild/linux-loong64": "0.15.13", + "esbuild-android-64": "0.15.13", + "esbuild-android-arm64": "0.15.13", + "esbuild-darwin-64": "0.15.13", + "esbuild-darwin-arm64": "0.15.13", + "esbuild-freebsd-64": "0.15.13", + "esbuild-freebsd-arm64": "0.15.13", + "esbuild-linux-32": "0.15.13", + "esbuild-linux-64": "0.15.13", + "esbuild-linux-arm": "0.15.13", + "esbuild-linux-arm64": "0.15.13", + "esbuild-linux-mips64le": "0.15.13", + "esbuild-linux-ppc64le": "0.15.13", + "esbuild-linux-riscv64": "0.15.13", + "esbuild-linux-s390x": "0.15.13", + "esbuild-netbsd-64": "0.15.13", + "esbuild-openbsd-64": "0.15.13", + "esbuild-sunos-64": "0.15.13", + "esbuild-windows-32": "0.15.13", + "esbuild-windows-64": "0.15.13", + "esbuild-windows-arm64": "0.15.13" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.13.tgz", + "integrity": "sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.13.tgz", + "integrity": "sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.13.tgz", + "integrity": "sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.13.tgz", + "integrity": "sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.13.tgz", + "integrity": "sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.13.tgz", + "integrity": "sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.13.tgz", + "integrity": "sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.13.tgz", + "integrity": "sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.13.tgz", + "integrity": "sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.13.tgz", + "integrity": "sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.13.tgz", + "integrity": "sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.13.tgz", + "integrity": "sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.13.tgz", + "integrity": "sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.13.tgz", + "integrity": "sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.13.tgz", + "integrity": "sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.13.tgz", + "integrity": "sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.13.tgz", + "integrity": "sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.13.tgz", + "integrity": "sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.13.tgz", + "integrity": "sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.13.tgz", + "integrity": "sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "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": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "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==", + "dev": true + }, + "node_modules/postcss": { + "version": "8.4.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", + "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/vite": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.2.tgz", + "integrity": "sha512-pLrhatFFOWO9kS19bQ658CnRYzv0WLbsPih6R+iFeEEhDOuYgYCX2rztUViMz/uy/V8cLCJvLFeiOK7RJEzHcw==", + "dev": true, + "dependencies": { + "esbuild": "^0.15.9", + "postcss": "^8.4.18", + "resolve": "^1.22.1", + "rollup": "^2.79.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + } + }, + "dependencies": { + "@esbuild/android-arm": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.13.tgz", + "integrity": "sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.13.tgz", + "integrity": "sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==", + "dev": true, + "optional": true + }, + "esbuild": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.13.tgz", + "integrity": "sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.15.13", + "@esbuild/linux-loong64": "0.15.13", + "esbuild-android-64": "0.15.13", + "esbuild-android-arm64": "0.15.13", + "esbuild-darwin-64": "0.15.13", + "esbuild-darwin-arm64": "0.15.13", + "esbuild-freebsd-64": "0.15.13", + "esbuild-freebsd-arm64": "0.15.13", + "esbuild-linux-32": "0.15.13", + "esbuild-linux-64": "0.15.13", + "esbuild-linux-arm": "0.15.13", + "esbuild-linux-arm64": "0.15.13", + "esbuild-linux-mips64le": "0.15.13", + "esbuild-linux-ppc64le": "0.15.13", + "esbuild-linux-riscv64": "0.15.13", + "esbuild-linux-s390x": "0.15.13", + "esbuild-netbsd-64": "0.15.13", + "esbuild-openbsd-64": "0.15.13", + "esbuild-sunos-64": "0.15.13", + "esbuild-windows-32": "0.15.13", + "esbuild-windows-64": "0.15.13", + "esbuild-windows-arm64": "0.15.13" + } + }, + "esbuild-android-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.13.tgz", + "integrity": "sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.13.tgz", + "integrity": "sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.13.tgz", + "integrity": "sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.13.tgz", + "integrity": "sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.13.tgz", + "integrity": "sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.13.tgz", + "integrity": "sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.13.tgz", + "integrity": "sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.13.tgz", + "integrity": "sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.13.tgz", + "integrity": "sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.13.tgz", + "integrity": "sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.13.tgz", + "integrity": "sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.13.tgz", + "integrity": "sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.13.tgz", + "integrity": "sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.13.tgz", + "integrity": "sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.13.tgz", + "integrity": "sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.13.tgz", + "integrity": "sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.13.tgz", + "integrity": "sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.13.tgz", + "integrity": "sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.13.tgz", + "integrity": "sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.13.tgz", + "integrity": "sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==", + "dev": true, + "optional": true + }, + "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": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "postcss": { + "version": "8.4.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", + "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", + "dev": true, + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "vite": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.2.tgz", + "integrity": "sha512-pLrhatFFOWO9kS19bQ658CnRYzv0WLbsPih6R+iFeEEhDOuYgYCX2rztUViMz/uy/V8cLCJvLFeiOK7RJEzHcw==", + "dev": true, + "requires": { + "esbuild": "^0.15.9", + "fsevents": "~2.3.2", + "postcss": "^8.4.18", + "resolve": "^1.22.1", + "rollup": "^2.79.1" + } + } + } +} diff --git a/packages/core/examples/vite-vanilla-repl/package.json b/packages/core/examples/vite-vanilla-repl/package.json new file mode 100644 index 00000000..4860a5cd --- /dev/null +++ b/packages/core/examples/vite-vanilla-repl/package.json @@ -0,0 +1,14 @@ +{ + "name": "vite-vanilla-repl", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "devDependencies": { + "vite": "^3.2.0" + } +} \ No newline at end of file diff --git a/packages/core/examples/vite-vanilla-repl/tune.mjs b/packages/core/examples/vite-vanilla-repl/tune.mjs new file mode 100644 index 00000000..acdc0a62 --- /dev/null +++ b/packages/core/examples/vite-vanilla-repl/tune.mjs @@ -0,0 +1,31 @@ +export default `await samples('github:tidalcycles/Dirt-Samples/master') + +stack( + // amen + n("0 1 2 3 4 5 6 7") + .sometimes(x=>x.ply(2)) + .rarely(x=>x.speed("2 | -2")) + .sometimesBy(.4, x=>x.delay(".5")) + .s("amencutup") + .slow(2) + .room(.5) + , + // bass + sine.add(saw.slow(4)).range(0,7).segment(8) + .superimpose(x=>x.add(.1)) + .scale('G0 minor').note() + .s("sawtooth").decay(.1).sustain(0) + .gain(.4).cutoff(perlin.range(300,3000).slow(8)).resonance(10) + .degradeBy("0 0.1 .5 .1") + .rarely(add(note("12"))) + , + // chord + note("Bb3,D4".superimpose(x=>x.add(.2))) + .s('sawtooth').cutoff(1000).struct("<~@3 [~ x]>") + .decay(.05).sustain(.0).delay(.8).delaytime(.125).room(.8) + , + // alien + s("breath").room(1).shape(.6).chop(16).rev().mask("") + , + n("0 1").s("east").delay(.5).degradeBy(.8).speed(rand.range(.5,1.5)) +).reset("")`; diff --git a/packages/core/index.mjs b/packages/core/index.mjs index c8139299..e567f185 100644 --- a/packages/core/index.mjs +++ b/packages/core/index.mjs @@ -18,6 +18,7 @@ export * from './speak.mjs'; export * from './clockworker.mjs'; export * from './scheduler.mjs'; export * from './evaluate.mjs'; +export * from './repl.mjs'; export { default as drawLine } from './drawLine.mjs'; export { default as gist } from './gist.js'; // below won't work with runtime.mjs (json import fails) diff --git a/packages/core/repl.mjs b/packages/core/repl.mjs index 591479e0..69a9255d 100644 --- a/packages/core/repl.mjs +++ b/packages/core/repl.mjs @@ -9,14 +9,14 @@ export function repl({ interval, defaultOutput, onSchedulerError, onEvalError, o } try { const { pattern } = await _evaluate(code, transpiler); - scheduler.setPattern(pattern); - onEval({ + scheduler.setPattern(pattern, true); + onEval?.({ pattern, code, }); } catch (err) { + console.warn(`eval error: ${err.message}`); onEvalError?.(err); - console.warn('eval error', err); } }; return { scheduler, evaluate }; From 5f985f359b5815db6bc4fe995ac43372bdc16a97 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 6 Nov 2022 16:03:49 +0100 Subject: [PATCH 42/45] add vanilla repl build --- .../examples/vite-vanilla-repl/.gitignore | 1 + .../dist/assets/index.60ad3587.js | 8 +++ .../dist/assets/index.6e398646.js | 56 +++++++++++++++++++ .../dist/assets/index.865535e6.js | 1 + .../dist/assets/index.c55cf335.js | 1 + .../vite-vanilla-repl/dist/index.html | 36 ++++++++++++ .../core/examples/vite-vanilla-repl/main.js | 5 +- 7 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 packages/core/examples/vite-vanilla-repl/.gitignore create mode 100644 packages/core/examples/vite-vanilla-repl/dist/assets/index.60ad3587.js create mode 100644 packages/core/examples/vite-vanilla-repl/dist/assets/index.6e398646.js create mode 100644 packages/core/examples/vite-vanilla-repl/dist/assets/index.865535e6.js create mode 100644 packages/core/examples/vite-vanilla-repl/dist/assets/index.c55cf335.js create mode 100644 packages/core/examples/vite-vanilla-repl/dist/index.html diff --git a/packages/core/examples/vite-vanilla-repl/.gitignore b/packages/core/examples/vite-vanilla-repl/.gitignore new file mode 100644 index 00000000..586e3d7a --- /dev/null +++ b/packages/core/examples/vite-vanilla-repl/.gitignore @@ -0,0 +1 @@ +!dist \ No newline at end of file diff --git a/packages/core/examples/vite-vanilla-repl/dist/assets/index.60ad3587.js b/packages/core/examples/vite-vanilla-repl/dist/assets/index.60ad3587.js new file mode 100644 index 00000000..6291d255 --- /dev/null +++ b/packages/core/examples/vite-vanilla-repl/dist/assets/index.60ad3587.js @@ -0,0 +1,8 @@ +import{c as ut,r as Se,s as pt}from"./index.6e398646.js";function gt(a,c){function r(){this.constructor=a}r.prototype=c.prototype,a.prototype=new r}function D(a,c,r,_){var p=Error.call(this,a);return Object.setPrototypeOf&&Object.setPrototypeOf(p,D.prototype),p.expected=c,p.found=r,p.location=_,p.name="SyntaxError",p}gt(D,Error);function U(a,c,r){return r=r||" ",a.length>c?a:(c-=a.length,r+=r.repeat(c),a+r.slice(0,c))}D.prototype.format=function(a){var c="Error: "+this.message;if(this.location){var r=null,_;for(_=0;_ `+$+` +`+A+` | +`+p.line+" | "+E+` +`+A+" | "+U("",p.column-1," ")+U("",h,"^")}else c+=` + at `+$}return c};D.buildMessage=function(a,c){var r={literal:function(m){return'"'+p(m.text)+'"'},class:function(m){var h=m.parts.map(function(b){return Array.isArray(b)?$(b[0])+"-"+$(b[1]):$(b)});return"["+(m.inverted?"^":"")+h.join("")+"]"},any:function(){return"any character"},end:function(){return"end of input"},other:function(m){return m.description}};function _(m){return m.charCodeAt(0).toString(16).toUpperCase()}function p(m){return m.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(h){return"\\x0"+_(h)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(h){return"\\x"+_(h)})}function $(m){return m.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(h){return"\\x0"+_(h)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(h){return"\\x"+_(h)})}function w(m){return r[m.type](m)}function A(m){var h=m.map(w),b,F;if(h.sort(),h.length>0){for(b=1,F=1;b",Me="@",We="!",Ze="(",Ge=")",Ue="/",Xe="*",He="%",Je="?",V="struct",Y="target",ee="euclid",re="slow",se="rotL",te="rotR",ne="fast",ae="scale",ie="//",fe="cat",Ke="$",oe="setcps",ce="setbpm",le="hush",Qe=/^[1-9]/,Ve=/^[eE]/,Ye=/^[0-9]/,ue=/^[ \n\r\t]/,er=/^[0-9a-zA-Z~]/,pe=/^[^\n]/,rr=Ae("number"),ge=g(".",!1),sr=j([["1","9"]],!1,!1),tr=j(["e","E"],!1,!1),ve=g("-",!1),nr=g("+",!1),ar=g("0",!1),ir=j([["0","9"]],!1,!1),fr=Ae("whitespace"),$e=j([" ",` +`,"\r"," "],!1,!1),or=g(",",!1),cr=g("|",!1),lr=g('"',!1),ur=g("'",!1),pr=j([["0","9"],["a","z"],["A","Z"],"~"],!1,!1),gr=g("#",!1),vr=g("^",!1),$r=g("_",!1),hr=g(":",!1),he=g("[",!1),me=g("]",!1),mr=g("<",!1),_r=g(">",!1),dr=g("@",!1),Ar=g("!",!1),wr=g("(",!1),yr=g(")",!1),br=g("/",!1),Cr=g("*",!1),xr=g("%",!1),Er=g("?",!1),Fr=g("struct",!1),jr=g("target",!1),Sr=g("euclid",!1),Rr=g("slow",!1),Pr=g("rotL",!1),Or=g("rotR",!1),qr=g("fast",!1),Ir=g("scale",!1),Dr=g("//",!1),_e=j([` +`],!0,!1),kr=g("cat",!1),Nr=g("$",!1),Br=g("setcps",!1),Tr=g("setbpm",!1),zr=g("hush",!1),Lr=function(){return parseFloat(As())},Mr=function(e){return e.join("")},Wr=function(e){return e},Zr=function(e){return e.arguments_.alignment="t",e},Gr=function(e){return{weight:e}},Ur=function(e){return{replicate:e}},Xr=function(e,t,n){return{operator:{type_:"bjorklund",arguments_:{pulse:e,step:t,rotation:n||0}}}},Hr=function(e){return{operator:{type_:"stretch",arguments_:{amount:e}}}},Jr=function(e){return{operator:{type_:"stretch",arguments_:{amount:"1/"+e}}}},Kr=function(e){return{operator:{type_:"fixed-step",arguments_:{amount:e}}}},Qr=function(e){return{operator:{type_:"degradeBy",arguments_:{amount:e||.5}}}},Vr=function(e,t){return new lt(e,t)},Yr=function(e){return new Z(e,"h")},es=function(e){return{alignment:"v",list:e}},rs=function(e){return{alignment:"r",list:e}},ss=function(e,t){return t&&t.list.length>0?new Z([e,...t.list],t.alignment):e},ts=function(e){return e},ns=function(e){return{name:"struct",args:{sequence:e}}},as=function(e){return{name:"target",args:{name:e}}},is=function(e,t,n){return{name:"bjorklund",args:{pulse:parseInt(e),step:parseInt(t)}}},fs=function(e){return{name:"stretch",args:{amount:e}}},os=function(e){return{name:"shift",args:{amount:"-"+e}}},cs=function(e){return{name:"shift",args:{amount:e}}},ls=function(e){return{name:"stretch",args:{amount:"1/"+e}}},us=function(e){return{name:"scale",args:{scale:e.join("")}}},de=function(e,t){return t},ps=function(e,t){return t.unshift(e),new Z(t,"t")},gs=function(e){return e},vs=function(e,t){return new ct(e.name,e.args,t)},$s=function(e){return e},hs=function(e){return e},ms=function(e){return new G("setcps",{value:e})},_s=function(e){return new G("setcps",{value:e/120/2})},ds=function(){return new G("hush")},s=0,v=0,N=[{line:1,column:1}],x=0,L=[],f=0,B;if("startRule"in c){if(!(c.startRule in p))throw new Error(`Can't start parsing from rule "`+c.startRule+'".');$=p[c.startRule]}function As(){return a.substring(v,s)}function ws(){return M(v,s)}function g(e,t){return{type:"literal",text:e,ignoreCase:t}}function j(e,t,n){return{type:"class",parts:e,inverted:t,ignoreCase:n}}function ys(){return{type:"end"}}function Ae(e){return{type:"other",description:e}}function we(e){var t=N[e],n;if(t)return t;for(n=e-1;!N[n];)n--;for(t=N[n],t={line:t.line,column:t.column};nx&&(x=s,L=[]),L.push(e))}function bs(e,t,n){return new D(D.buildMessage(e,t),e,t,n)}function ye(){var e;return e=ot(),e}function y(){var e,t;return f++,e=s,be(),t=T(),t!==r?(js(),Fs(),v=e,e=Lr()):(s=e,e=r),f--,e===r&&f===0&&o(rr),e}function Cs(){var e;return a.charCodeAt(s)===46?(e=w,s++):(e=r,f===0&&o(ge)),e}function xs(){var e;return Qe.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,f===0&&o(sr)),e}function Es(){var e;return Ve.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,f===0&&o(tr)),e}function Fs(){var e,t,n,i,l;if(e=s,t=Es(),t!==r){if(n=be(),n===r&&(n=Ss()),n===r&&(n=null),i=[],l=S(),l!==r)for(;l!==r;)i.push(l),l=S();else i=r;i!==r?(t=[t,n,i],e=t):(s=e,e=r)}else s=e,e=r;return e}function js(){var e,t,n,i;if(e=s,t=Cs(),t!==r){if(n=[],i=S(),i!==r)for(;i!==r;)n.push(i),i=S();else n=r;n!==r?(t=[t,n],e=t):(s=e,e=r)}else s=e,e=r;return e}function T(){var e,t,n,i;if(e=Rs(),e===r)if(e=s,t=xs(),t!==r){for(n=[],i=S();i!==r;)n.push(i),i=S();t=[t,n],e=t}else s=e,e=r;return e}function be(){var e;return a.charCodeAt(s)===45?(e=A,s++):(e=r,f===0&&o(ve)),e}function Ss(){var e;return a.charCodeAt(s)===43?(e=E,s++):(e=r,f===0&&o(nr)),e}function Rs(){var e;return a.charCodeAt(s)===48?(e=m,s++):(e=r,f===0&&o(ar)),e}function S(){var e;return Ye.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,f===0&&o(ir)),e}function u(){var e,t;for(f++,e=[],ue.test(a.charAt(s))?(t=a.charAt(s),s++):(t=r,f===0&&o($e));t!==r;)e.push(t),ue.test(a.charAt(s))?(t=a.charAt(s),s++):(t=r,f===0&&o($e));return f--,t=r,f===0&&o(fr),e}function R(){var e,t,n,i;return e=s,t=u(),a.charCodeAt(s)===44?(n=h,s++):(n=r,f===0&&o(or)),n!==r?(i=u(),t=[t,n,i],e=t):(s=e,e=r),e}function Ce(){var e,t,n,i;return e=s,t=u(),a.charCodeAt(s)===124?(n=b,s++):(n=r,f===0&&o(cr)),n!==r?(i=u(),t=[t,n,i],e=t):(s=e,e=r),e}function P(){var e;return a.charCodeAt(s)===34?(e=F,s++):(e=r,f===0&&o(lr)),e===r&&(a.charCodeAt(s)===39?(e=De,s++):(e=r,f===0&&o(ur))),e}function z(){var e;return er.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,f===0&&o(pr)),e===r&&(a.charCodeAt(s)===45?(e=A,s++):(e=r,f===0&&o(ve)),e===r&&(a.charCodeAt(s)===35?(e=ke,s++):(e=r,f===0&&o(gr)),e===r&&(a.charCodeAt(s)===46?(e=w,s++):(e=r,f===0&&o(ge)),e===r&&(a.charCodeAt(s)===94?(e=Ne,s++):(e=r,f===0&&o(vr)),e===r&&(a.charCodeAt(s)===95?(e=Be,s++):(e=r,f===0&&o($r)),e===r&&(a.charCodeAt(s)===58?(e=Te,s++):(e=r,f===0&&o(hr)))))))),e}function xe(){var e,t,n;if(e=s,u(),t=[],n=z(),n!==r)for(;n!==r;)t.push(n),n=z();else t=r;return t!==r?(n=u(),v=e,e=Mr(t)):(s=e,e=r),e}function Ps(){var e,t,n,i;return e=s,u(),a.charCodeAt(s)===91?(t=K,s++):(t=r,f===0&&o(he)),t!==r?(u(),n=Fe(),n!==r?(u(),a.charCodeAt(s)===93?(i=Q,s++):(i=r,f===0&&o(me)),i!==r?(u(),v=e,e=Wr(n)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Os(){var e,t,n,i;return e=s,u(),a.charCodeAt(s)===60?(t=ze,s++):(t=r,f===0&&o(mr)),t!==r?(u(),n=O(),n!==r?(u(),a.charCodeAt(s)===62?(i=Le,s++):(i=r,f===0&&o(_r)),i!==r?(u(),v=e,e=Zr(n)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function qs(){var e;return e=xe(),e===r&&(e=Ps(),e===r&&(e=Os())),e}function Is(){var e;return e=Ds(),e===r&&(e=Ns(),e===r&&(e=Bs(),e===r&&(e=Ts(),e===r&&(e=zs(),e===r&&(e=ks(),e===r&&(e=Ls())))))),e}function Ds(){var e,t,n;return e=s,a.charCodeAt(s)===64?(t=Me,s++):(t=r,f===0&&o(dr)),t!==r?(n=y(),n!==r?(v=e,e=Gr(n)):(s=e,e=r)):(s=e,e=r),e}function ks(){var e,t,n;return e=s,a.charCodeAt(s)===33?(t=We,s++):(t=r,f===0&&o(Ar)),t!==r?(n=y(),n!==r?(v=e,e=Ur(n)):(s=e,e=r)):(s=e,e=r),e}function Ns(){var e,t,n,i,l,d,C;return e=s,a.charCodeAt(s)===40?(t=Ze,s++):(t=r,f===0&&o(wr)),t!==r?(u(),n=y(),n!==r?(u(),i=R(),i!==r?(u(),l=y(),l!==r?(u(),R(),u(),d=y(),d===r&&(d=null),u(),a.charCodeAt(s)===41?(C=Ge,s++):(C=r,f===0&&o(yr)),C!==r?(v=e,e=Xr(n,l,d)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Bs(){var e,t,n;return e=s,a.charCodeAt(s)===47?(t=Ue,s++):(t=r,f===0&&o(br)),t!==r?(n=y(),n!==r?(v=e,e=Hr(n)):(s=e,e=r)):(s=e,e=r),e}function Ts(){var e,t,n;return e=s,a.charCodeAt(s)===42?(t=Xe,s++):(t=r,f===0&&o(Cr)),t!==r?(n=y(),n!==r?(v=e,e=Jr(n)):(s=e,e=r)):(s=e,e=r),e}function zs(){var e,t,n;return e=s,a.charCodeAt(s)===37?(t=He,s++):(t=r,f===0&&o(xr)),t!==r?(n=y(),n!==r?(v=e,e=Kr(n)):(s=e,e=r)):(s=e,e=r),e}function Ls(){var e,t,n;return e=s,a.charCodeAt(s)===63?(t=Je,s++):(t=r,f===0&&o(Er)),t!==r?(n=y(),n===r&&(n=null),v=e,e=Qr(n)):(s=e,e=r),e}function Ee(){var e,t,n;return e=s,t=qs(),t!==r?(n=Is(),n===r&&(n=null),v=e,e=Vr(t,n)):(s=e,e=r),e}function O(){var e,t,n;if(e=s,t=[],n=Ee(),n!==r)for(;n!==r;)t.push(n),n=Ee();else t=r;return t!==r&&(v=e,t=Yr(t)),e=t,e}function Ms(){var e,t,n,i,l;if(e=s,t=[],n=s,i=R(),i!==r?(l=O(),l!==r?n=l:(s=n,n=r)):(s=n,n=r),n!==r)for(;n!==r;)t.push(n),n=s,i=R(),i!==r?(l=O(),l!==r?n=l:(s=n,n=r)):(s=n,n=r);else t=r;return t!==r&&(v=e,t=es(t)),e=t,e}function Ws(){var e,t,n,i,l;if(e=s,t=[],n=s,i=Ce(),i!==r?(l=O(),l!==r?n=l:(s=n,n=r)):(s=n,n=r),n!==r)for(;n!==r;)t.push(n),n=s,i=Ce(),i!==r?(l=O(),l!==r?n=l:(s=n,n=r)):(s=n,n=r);else t=r;return t!==r&&(v=e,t=rs(t)),e=t,e}function Fe(){var e,t,n;return e=s,t=O(),t!==r?(n=Ms(),n===r&&(n=Ws()),n===r&&(n=null),v=e,e=ss(t,n)):(s=e,e=r),e}function Zs(){var e,t,n,i;return e=s,u(),t=P(),t!==r?(n=Fe(),n!==r?(i=P(),i!==r?(v=e,e=ts(n)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Gs(){var e;return e=Ys(),e===r&&(e=Js(),e===r&&(e=Vs(),e===r&&(e=Xs(),e===r&&(e=Hs(),e===r&&(e=Us(),e===r&&(e=Qs(),e===r&&(e=Ks()))))))),e}function Us(){var e,t,n;return e=s,a.substr(s,6)===V?(t=V,s+=6):(t=r,f===0&&o(Fr)),t!==r?(u(),n=q(),n!==r?(v=e,e=ns(n)):(s=e,e=r)):(s=e,e=r),e}function Xs(){var e,t,n,i,l;return e=s,a.substr(s,6)===Y?(t=Y,s+=6):(t=r,f===0&&o(jr)),t!==r?(u(),n=P(),n!==r?(i=xe(),i!==r?(l=P(),l!==r?(v=e,e=as(i)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Hs(){var e,t,n,i;return e=s,a.substr(s,6)===ee?(t=ee,s+=6):(t=r,f===0&&o(Sr)),t!==r?(u(),n=T(),n!==r?(u(),i=T(),i!==r?(u(),T(),v=e,e=is(n,i)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Js(){var e,t,n;return e=s,a.substr(s,4)===re?(t=re,s+=4):(t=r,f===0&&o(Rr)),t!==r?(u(),n=y(),n!==r?(v=e,e=fs(n)):(s=e,e=r)):(s=e,e=r),e}function Ks(){var e,t,n;return e=s,a.substr(s,4)===se?(t=se,s+=4):(t=r,f===0&&o(Pr)),t!==r?(u(),n=y(),n!==r?(v=e,e=os(n)):(s=e,e=r)):(s=e,e=r),e}function Qs(){var e,t,n;return e=s,a.substr(s,4)===te?(t=te,s+=4):(t=r,f===0&&o(Or)),t!==r?(u(),n=y(),n!==r?(v=e,e=cs(n)):(s=e,e=r)):(s=e,e=r),e}function Vs(){var e,t,n;return e=s,a.substr(s,4)===ne?(t=ne,s+=4):(t=r,f===0&&o(qr)),t!==r?(u(),n=y(),n!==r?(v=e,e=ls(n)):(s=e,e=r)):(s=e,e=r),e}function Ys(){var e,t,n,i,l;if(e=s,a.substr(s,5)===ae?(t=ae,s+=5):(t=r,f===0&&o(Ir)),t!==r)if(u(),n=P(),n!==r){if(i=[],l=z(),l!==r)for(;l!==r;)i.push(l),l=z();else i=r;i!==r?(l=P(),l!==r?(v=e,e=us(i)):(s=e,e=r)):(s=e,e=r)}else s=e,e=r;else s=e,e=r;return e}function W(){var e,t,n,i;if(e=s,a.substr(s,2)===ie?(t=ie,s+=2):(t=r,f===0&&o(Dr)),t!==r){for(n=[],pe.test(a.charAt(s))?(i=a.charAt(s),s++):(i=r,f===0&&o(_e));i!==r;)n.push(i),pe.test(a.charAt(s))?(i=a.charAt(s),s++):(i=r,f===0&&o(_e));t=[t,n],e=t}else s=e,e=r;return e}function et(){var e,t,n,i,l,d,C,I;if(e=s,a.substr(s,3)===fe?(t=fe,s+=3):(t=r,f===0&&o(kr)),t!==r)if(u(),a.charCodeAt(s)===91?(n=K,s++):(n=r,f===0&&o(he)),n!==r)if(u(),i=q(),i!==r){for(l=[],d=s,C=R(),C!==r?(I=q(),I!==r?(v=d,d=de(i,I)):(s=d,d=r)):(s=d,d=r);d!==r;)l.push(d),d=s,C=R(),C!==r?(I=q(),I!==r?(v=d,d=de(i,I)):(s=d,d=r)):(s=d,d=r);d=u(),a.charCodeAt(s)===93?(C=Q,s++):(C=r,f===0&&o(me)),C!==r?(v=e,e=ps(i,l)):(s=e,e=r)}else s=e,e=r;else s=e,e=r;else s=e,e=r;return e}function rt(){var e;return e=et(),e===r&&(e=Zs()),e}function q(){var e,t,n,i,l;if(e=s,t=rt(),t!==r){for(u(),n=[],i=W();i!==r;)n.push(i),i=W();v=e,e=gs(t)}else s=e,e=r;return e===r&&(e=s,t=Gs(),t!==r?(u(),a.charCodeAt(s)===36?(n=Ke,s++):(n=r,f===0&&o(Nr)),n!==r?(i=u(),l=q(),l!==r?(v=e,e=vs(t,l)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)),e}function st(){var e,t;return e=s,t=q(),t!==r&&(v=e,t=$s(t)),e=t,e===r&&(e=W()),e}function tt(){var e;return e=st(),e}function nt(){var e,t;return e=s,u(),t=at(),t===r&&(t=it(),t===r&&(t=ft())),t!==r?(u(),v=e,e=hs(t)):(s=e,e=r),e}function at(){var e,t,n;return e=s,a.substr(s,6)===oe?(t=oe,s+=6):(t=r,f===0&&o(Br)),t!==r?(u(),n=y(),n!==r?(v=e,e=ms(n)):(s=e,e=r)):(s=e,e=r),e}function it(){var e,t,n;return e=s,a.substr(s,6)===ce?(t=ce,s+=6):(t=r,f===0&&o(Tr)),t!==r?(u(),n=y(),n!==r?(v=e,e=_s(n)):(s=e,e=r)):(s=e,e=r),e}function ft(){var e,t;return e=s,a.substr(s,4)===le?(t=le,s+=4):(t=r,f===0&&o(zr)),t!==r&&(v=e,t=ds()),e=t,e}function ot(){var e;return e=tt(),e===r&&(e=nt()),e}var Z=function(e,t){this.type_="pattern",this.arguments_={alignment:t},this.source_=e},ct=function(e,t,n){this.type_=e,this.arguments_=t,this.source_=n},lt=function(e,t){this.type_="element",this.source_=e,this.options_=t,this.location_=ws()},G=function(e,t){this.type_="command",this.name_=e,this.options_=t};if(B=$(),B!==r&&s===a.length)return B;throw B!==r&&s(c,r)=>{const p=a.source_[r].options_,$=p==null?void 0:p.operator;if($){switch($.type_){case"stretch":const A=Pe($.arguments_.amount).inverse();return X(c).fast(A);case"bjorklund":return c.euclid($.arguments_.pulse,$.arguments_.step,$.arguments_.rotation);case"degradeBy":return X(c)._degradeByWith(Se.early(qe*Ie()).segment(1),$.arguments_.amount)}console.warn(`operator "${$.type_}" not implemented`)}if(p!=null&&p.weight)return c;const w=Object.keys(p||{}).filter(A=>A!=="operator");return w.length&&console.warn(`option${w.length>1?"s":""} ${w.map(A=>`"${A}"`).join(", ")} not implemented`),c};function At(a){a.source_=a.source_.map(c=>{const{replicate:r,..._}=c.options_||{};return r?{...c,options_:{..._,weight:r},source_:{type_:"pattern",arguments_:{alignment:"h"},source_:[{type_:"element",source_:c.source_,location_:c.location_,options_:{operator:{type_:"stretch",arguments_:{amount:Pe(r).inverse().toString()}}}}]}}:c})}function k(a){switch(a.type_){case"pattern":At(a);const c=a.source_.map(k).map(dt(a)),r=a.arguments_.alignment;if(r==="v")return $t(...c);if(r==="r")return ut(Se.early(qe*Ie()).segment(1),c);const _=a.source_.some(p=>{var $;return!!(($=p.options_)!=null&&$.weight)});if(!_&&r==="t")return ht(...c);if(_){const p=mt(...a.source_.map(($,w)=>{var A;return[((A=$.options_)==null?void 0:A.weight)||1,c[w]]}));if(r==="t"){const $=a.source_.reduce((w,A)=>{var E;return w+(((E=A.options_)==null?void 0:E.weight)||1)},0);return p._slow($)}return p}return Oe(...c);case"element":if(a.source_==="~")return je;if(typeof a.source_!="object"){if(!a.location_)return console.warn("no location for",a),a.source_;const{start:p,end:$}=a.location_,w=isNaN(Number(a.source_))?a.source_:Number(a.source_);return vt(w).withLocation([p.line,p.column,p.offset],[$.line,$.column,$.offset])}return k(a.source_);case"stretch":return k(a.source_).slow(a.arguments_.amount);default:return console.warn(`node type "${a.type_}" not implemented -> returning silence`),je}}const J=(...a)=>{const c=a.map(r=>{const _=Re(`"${r}"`);return k(_)});return Oe(...c)},wt=a=>{const c=Re(a);return k(c)};H.prototype.define("mini",J,{composable:!0});H.prototype.define("m",J,{composable:!0});H.prototype.define("h",wt,{composable:!0});function bt(a){return typeof a=="string"?J(a):X(a)}export{D as SyntaxError,wt as h,J as mini,bt as minify,Re as parse,k as patternifyAST}; diff --git a/packages/core/examples/vite-vanilla-repl/dist/assets/index.6e398646.js b/packages/core/examples/vite-vanilla-repl/dist/assets/index.6e398646.js new file mode 100644 index 00000000..3c23972c --- /dev/null +++ b/packages/core/examples/vite-vanilla-repl/dist/assets/index.6e398646.js @@ -0,0 +1,56 @@ +var _t=Object.defineProperty;var It=(s,e,r)=>e in s?_t(s,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):s[e]=r;var V=(s,e,r)=>(It(s,typeof e!="symbol"?e+"":e,r),r);const strudel=Object.freeze(Object.defineProperty({__proto__:null,get Fraction(){return fraction},get controls(){return controls},get drawLine(){return drawLine},get gist(){return gist},get Hap(){return Hap},get Pattern(){return Pattern$3},get polyrhythm(){return polyrhythm},get pr(){return pr},get silence(){return silence},get pure(){return pure},get isPattern(){return isPattern$1},get reify(){return reify$1},get stack(){return stack},get slowcat(){return slowcat},get slowcatPrime(){return slowcatPrime},get fastcat(){return fastcat},get cat(){return cat},get timeCat(){return timeCat},get sequence(){return sequence},get seq(){return seq$2},get polymeterSteps(){return polymeterSteps},get polymeter(){return polymeter},get pm(){return pm},get add(){return add},get chop(){return chop},get chunk(){return chunk},get chunkBack(){return chunkBack},get div(){return div},get early(){return early},get echo(){return echo},get every(){return every},get fast(){return fast},get inv(){return inv},get invert(){return invert},get iter(){return iter},get iterBack(){return iterBack},get jux(){return jux},get juxBy(){return juxBy},get late(){return late},get linger(){return linger},get mask(){return mask},get mul(){return mul},get off(){return off},get ply(){return ply},get range(){return range},get rangex(){return rangex},get range2(){return range2},get rev(){return rev},get slow(){return slow},get struct(){return struct},get sub(){return sub},get superimpose(){return superimpose},get set(){return set},get when(){return when},get makeComposable(){return makeComposable},get patternify2(){return patternify2},get patternify3(){return patternify3},get patternify4(){return patternify4},get steady(){return steady},get signal(){return signal},get isaw(){return isaw},get isaw2(){return isaw2},get saw(){return saw},get saw2(){return saw2},get sine2(){return sine2},get sine(){return sine},get cosine(){return cosine},get cosine2(){return cosine2},get square(){return square},get square2(){return square2},get tri(){return tri},get tri2(){return tri2},get time(){return time},get rand(){return rand},get rand2(){return rand2},get _brandBy(){return _brandBy},get brandBy(){return brandBy},get brand(){return brand},get _irand(){return _irand},get irand(){return irand},get __chooseWith(){return __chooseWith},get chooseWith(){return chooseWith},get chooseInWith(){return chooseInWith},get choose(){return choose},get chooseCycles(){return chooseCycles},get randcat(){return randcat},get wchoose(){return wchoose},get wchooseCycles(){return wchooseCycles},get perlinWith(){return perlinWith},get perlin(){return perlin},get State(){return State},get TimeSpan(){return TimeSpan},get isNote(){return isNote$1},get tokenizeNote(){return tokenizeNote},get toMidi(){return toMidi},get fromMidi(){return fromMidi},get getFreq(){return getFreq},get midi2note(){return midi2note},get mod(){return mod},get getPlayableNoteValue(){return getPlayableNoteValue},get getFrequency(){return getFrequency},get rotate(){return rotate},get pipe(){return pipe},get compose(){return compose},get removeUndefineds(){return removeUndefineds},get flatten(){return flatten},get id(){return id},get constant(){return constant},get listRange(){return listRange},get curry(){return curry},get parseNumeral(){return parseNumeral},get mapArgs(){return mapArgs},get numeralArgs(){return numeralArgs},get parseFractional(){return parseFractional},get fractionalArgs(){return fractionalArgs},get ClockWorker(){return ClockWorker},get Scheduler(){return Scheduler},get evalScope(){return evalScope},get evaluate(){return evaluate$1},get repl(){return repl}},Symbol.toStringTag,{value:"Module"}));(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))u(i);new MutationObserver(i=>{for(const n of i)if(n.type==="childList")for(const a of n.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&u(a)}).observe(document,{childList:!0,subtree:!0});function r(i){const n={};return i.integrity&&(n.integrity=i.integrity),i.referrerpolicy&&(n.referrerPolicy=i.referrerpolicy),i.crossorigin==="use-credentials"?n.credentials="include":i.crossorigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function u(i){if(i.ep)return;i.ep=!0;const n=r(i);fetch(i.href,n)}})();const scriptRel="modulepreload",assetsURL=function(s){return"/"+s},seen={},__vitePreload=function(e,r,u){if(!r||r.length===0)return e();const i=document.getElementsByTagName("link");return Promise.all(r.map(n=>{if(n=assetsURL(n),n in seen)return;seen[n]=!0;const a=n.endsWith(".css"),l=a?'[rel="stylesheet"]':"";if(!!u)for(let A=i.length-1;A>=0;A--){const d=i[A];if(d.href===n&&(!a||d.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${n}"]${l}`))return;const c=document.createElement("link");if(c.rel=a?"stylesheet":scriptRel,a||(c.as="script",c.crossOrigin=""),c.href=n,document.head.appendChild(c),a)return new Promise((A,d)=>{c.addEventListener("load",A),c.addEventListener("error",()=>d(new Error(`Unable to preload CSS for ${n}`)))})})).then(()=>e())};var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}function getAugmentedNamespace(s){var e=s.default;if(typeof e=="function"){var r=function(){return e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(s).forEach(function(u){var i=Object.getOwnPropertyDescriptor(s,u);Object.defineProperty(r,u,i.get?i:{enumerable:!0,get:function(){return s[u]}})}),r}var fraction$1={exports:{}};/** + * @license Fraction.js v4.2.0 05/03/2022 + * https://www.xarg.org/2014/03/rational-numbers-in-javascript/ + * + * Copyright (c) 2021, Robert Eisele (robert@xarg.org) + * Dual licensed under the MIT or GPL Version 2 licenses. + **/(function(s,e){(function(r){var u=2e3,i={s:1,n:0,d:1};function n(E,D){if(isNaN(E=parseInt(E,10)))throw f.InvalidParameter;return E*D}function a(E,D){if(D===0)throw f.DivisionByZero;var h=Object.create(f.prototype);h.s=E<0?-1:1,E=E<0?-E:E;var y=m(E,D);return h.n=E/y,h.d=D/y,h}function l(E){for(var D={},h=E,y=2,_=4;_<=h;){for(;h%y===0;)h/=y,D[y]=(D[y]||0)+1;_+=1+2*y++}return h!==E?h>1&&(D[h]=(D[h]||0)+1):D[E]=(D[E]||0)+1,D}var o=function(E,D){var h=0,y=1,_=1,b=0,P=0,B=0,g=1,x=1,C=0,S=1,L=1,$=1,N=1e7,R;if(E!=null)if(D!==void 0){if(h=E,y=D,_=h*y,h%1!==0||y%1!==0)throw f.NonIntegerParameter}else switch(typeof E){case"object":{if("d"in E&&"n"in E)h=E.n,y=E.d,"s"in E&&(h*=E.s);else if(0 in E)h=E[0],1 in E&&(y=E[1]);else throw f.InvalidParameter;_=h*y;break}case"number":{if(E<0&&(_=E,E=-E),E%1===0)h=E;else if(E>0){for(E>=1&&(x=Math.pow(10,Math.floor(1+Math.log(E)/Math.LN10)),E/=x);S<=N&&$<=N;)if(R=(C+L)/(S+$),E===R){S+$<=N?(h=C+L,y=S+$):$>S?(h=L,y=$):(h=C,y=S);break}else E>R?(C+=L,S+=$):(L+=C,$+=S),S>N?(h=L,y=$):(h=C,y=S);h*=x}else(isNaN(E)||isNaN(D))&&(y=h=NaN);break}case"string":{if(S=E.match(/\d+|./g),S===null)throw f.InvalidParameter;if(S[C]==="-"?(_=-1,C++):S[C]==="+"&&C++,S.length===C+1?P=n(S[C++],_):S[C+1]==="."||S[C]==="."?(S[C]!=="."&&(b=n(S[C++],_)),C++,(C+1===S.length||S[C+1]==="("&&S[C+3]===")"||S[C+1]==="'"&&S[C+3]==="'")&&(P=n(S[C],_),g=Math.pow(10,S[C].length),C++),(S[C]==="("&&S[C+2]===")"||S[C]==="'"&&S[C+2]==="'")&&(B=n(S[C+1],_),x=Math.pow(10,S[C+1].length)-1,C+=3)):S[C+1]==="/"||S[C+1]===":"?(P=n(S[C],_),g=n(S[C+2],1),C+=3):S[C+3]==="/"&&S[C+1]===" "&&(b=n(S[C],_),P=n(S[C+2],_),g=n(S[C+4],1),C+=5),S.length<=C){y=g*x,_=h=B+y*b+x*P;break}}default:throw f.InvalidParameter}if(y===0)throw f.DivisionByZero;i.s=_<0?-1:1,i.n=Math.abs(h),i.d=Math.abs(y)};function c(E,D,h){for(var y=1;D>0;E=E*E%h,D>>=1)D&1&&(y=y*E%h);return y}function A(E,D){for(;D%2===0;D/=2);for(;D%5===0;D/=5);if(D===1)return 0;for(var h=10%D,y=1;h!==1;y++)if(h=h*10%D,y>u)return 0;return y}function d(E,D,h){for(var y=1,_=c(10,h,D),b=0;b<300;b++){if(y===_)return b;y=y*10%D,_=_*10%D}return 0}function m(E,D){if(!E)return D;if(!D)return E;for(;;){if(E%=D,!E)return D;if(D%=E,!D)return E}}function f(E,D){if(o(E,D),this instanceof f)E=m(i.d,i.n),this.s=i.s,this.n=i.n/E,this.d=i.d/E;else return a(i.s*i.n,i.d)}f.DivisionByZero=new Error("Division by Zero"),f.InvalidParameter=new Error("Invalid argument"),f.NonIntegerParameter=new Error("Parameters must be integer"),f.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,D){return o(E,D),a(this.s*this.n*i.d+i.s*this.d*i.n,this.d*i.d)},sub:function(E,D){return o(E,D),a(this.s*this.n*i.d-i.s*this.d*i.n,this.d*i.d)},mul:function(E,D){return o(E,D),a(this.s*i.s*this.n*i.n,this.d*i.d)},div:function(E,D){return o(E,D),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,D){if(isNaN(this.n)||isNaN(this.d))return new f(NaN);if(E===void 0)return a(this.s*this.n%this.d,1);if(o(E,D),i.n===0&&this.d===0)throw f.DivisionByZero;return a(this.s*(i.d*this.n)%(i.n*this.d),i.d*this.d)},gcd:function(E,D){return o(E,D),a(m(i.n,this.n)*m(i.d,this.d),i.d*this.d)},lcm:function(E,D){return o(E,D),i.n===0&&this.n===0?a(0,1):a(i.n*this.n,m(i.n,this.n)*m(i.d,this.d))},ceil:function(E){return E=Math.pow(10,E||0),isNaN(this.n)||isNaN(this.d)?new f(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 f(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 f(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,D){if(o(E,D),i.d===1)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 h=l(this.n),y=l(this.d),_=1,b=1;for(var P in h)if(P!=="1"){if(P==="0"){_=0;break}if(h[P]*=i.n,h[P]%i.d===0)h[P]/=i.d;else return null;_*=Math.pow(P,h[P])}for(var P in y)if(P!=="1"){if(y[P]*=i.n,y[P]%i.d===0)y[P]/=i.d;else return null;b*=Math.pow(P,y[P])}return i.s<0?a(b,_):a(_,b)},equals:function(E,D){return o(E,D),this.s*this.n*i.d===i.s*i.n*this.d},compare:function(E,D){o(E,D);var h=this.s*this.n*i.d-i.s*i.n*this.d;return(0=0;b--)_=_.inverse().add(h[b]);if(_.sub(D).abs().valueOf()0&&(h+=D,h+=" ",y%=_),h+=y,h+="/",h+=_),h},toLatex:function(E){var D,h="",y=this.n,_=this.d;return this.s<0&&(h+="-"),_===1?h+=y:(E&&(D=Math.floor(y/_))>0&&(h+=D,y%=_),h+="\\frac{",h+=y,h+="}{",h+=_,h+="}"),h},toContinued:function(){var E,D=this.n,h=this.d,y=[];if(isNaN(D)||isNaN(h))return y;do y.push(Math.floor(D/h)),E=D%h,D=h,h=E;while(D!==1);return y},toString:function(E){var D=this.n,h=this.d;if(isNaN(D)||isNaN(h))return"NaN";E=E||15;var y=A(D,h),_=d(D,h,y),b=this.s<0?"-":"";if(b+=D/h|0,D%=h,D*=10,D&&(b+="."),y){for(var P=_;P--;)b+=D/h|0,D%=h,D*=10;b+="(";for(var P=y;P--;)b+=D/h|0,D%=h,D*=10;b+=")"}else for(var P=E;D&&P--;)b+=D/h|0,D%=h,D*=10;return b}},Object.defineProperty(f,"__esModule",{value:!0}),f.default=f,f.Fraction=f,s.exports=f})()})(fraction$1);const Fraction=getDefaultExportFromCjs(fraction$1.exports);Fraction.prototype.sam=function(){return this.floor()};Fraction.prototype.nextSam=function(){return this.sam().add(1)};Fraction.prototype.wholeCycle=function(){return new TimeSpan(this.sam(),this.nextSam())};Fraction.prototype.cyclePos=function(){return this.sub(this.sam())};Fraction.prototype.lt=function(s){return this.compare(s)<0};Fraction.prototype.gt=function(s){return this.compare(s)>0};Fraction.prototype.lte=function(s){return this.compare(s)<=0};Fraction.prototype.gte=function(s){return this.compare(s)>=0};Fraction.prototype.eq=function(s){return this.compare(s)==0};Fraction.prototype.max=function(s){return this.gt(s)?this:s};Fraction.prototype.min=function(s){return this.lt(s)?this:s};Fraction.prototype.show=function(){return this.s*this.n+"/"+this.d};Fraction.prototype.or=function(s){return this.eq(0)?s:this};const fraction=s=>(typeof s=="number"&&(s=String(s)),Fraction(s)),gcd=(...s)=>s.reduce((e,r)=>e.gcd(r),fraction(1));fraction._original=Fraction;class TimeSpan{constructor(e,r){this.begin=fraction(e),this.end=fraction(r)}get spanCycles(){const e=[];var r=this.begin;const u=this.end,i=u.sam();if(r.equals(u))return[new TimeSpan(r,u)];for(;u.gt(r);){if(r.sam().equals(i)){e.push(new TimeSpan(r,this.end));break}const n=r.nextSam();e.push(new TimeSpan(r,n)),r=n}return e}get duration(){return this.end.sub(this.begin)}cycleArc(){const e=this.begin.cyclePos(),r=e.add(this.duration);return new TimeSpan(e,r)}withTime(e){return new TimeSpan(e(this.begin),e(this.end))}withEnd(e){return new TimeSpan(this.begin,e(this.end))}withCycle(e){const r=this.begin.sam(),u=r.add(e(this.begin.sub(r))),i=r.add(e(this.end.sub(r)));return new TimeSpan(u,i)}intersection(e){const r=this.begin.max(e.begin),u=this.end.min(e.end);if(!r.gt(u)&&!(r.equals(u)&&(r.equals(this.end)&&this.begin.lt(this.end)||r.equals(e.end)&&e.begin.lt(e.end))))return new TimeSpan(r,u)}intersection_e(e){const r=this.intersection(e);if(r==null)throw"TimeSpans do not intersect";return r}midpoint(){return this.begin.add(this.duration.div(fraction(2)))}equals(e){return this.begin.equals(e.begin)&&this.end.equals(e.end)}show(){return this.begin.show()+" -> "+this.end.show()}}class Hap{constructor(e,r,u,i={},n=!1){this.whole=e,this.part=r,this.value=u,this.context=i,this.stateful=n,n&&console.assert(typeof this.value=="function","Stateful values must be functions")}get duration(){return this.whole.end.sub(this.whole.begin)}wholeOrPart(){return this.whole?this.whole:this.part}withSpan(e){const r=this.whole?e(this.whole):void 0;return new Hap(r,e(this.part),this.value,this.context)}withValue(e){return new Hap(this.whole,this.part,e(this.value),this.context)}hasOnset(){return this.whole!=null&&this.whole.begin.equals(this.part.begin)}resolveState(e){if(this.stateful&&this.hasOnset()){console.log("stateful");const r=this.value,[u,i]=r(e);return[u,new Hap(this.whole,this.part,i,this.context,!1)]}return[e,this]}spanEquals(e){return this.whole==null&&e.whole==null||this.whole.equals(e.whole)}equals(e){return this.spanEquals(e)&&this.part.equals(e.part)&&this.value===e.value}show(){return"("+(this.whole==null?"~":this.whole.show())+", "+this.part.show()+", "+this.value+")"}showWhole(){return`${this.whole==null?"~":this.whole.show()}: ${typeof this.value=="object"?JSON.stringify(this.value):this.value}`}combineContext(e){const r=this;return{...r.context,...e.context,locations:(r.context.locations||[]).concat(e.context.locations||[])}}setContext(e){return new Hap(this.whole,this.part,this.value,e)}}class State{constructor(e,r={}){this.span=e,this.controls=r}setSpan(e){return new State(e,this.controls)}withSpan(e){return this.setSpan(e(this.span))}setControls(e){return new State(this.span,e)}}const isNote$1=s=>/^[a-gA-G][#b]*[0-9]$/.test(s),tokenizeNote=s=>{var i;if(typeof s!="string")return[];const[e,r="",u]=((i=s.match(/^([a-gA-G])([#bs]*)([0-9])?$/))==null?void 0:i.slice(1))||[];return e?[e,r,u?Number(u):void 0]:[]},toMidi=s=>{const[e,r,u]=tokenizeNote(s);if(!e)throw new Error('not a note: "'+s+'"');const i={c:0,d:2,e:4,f:5,g:7,a:9,b:11}[e.toLowerCase()],n=(r==null?void 0:r.split("").reduce((a,l)=>a+{"#":1,b:-1,s:1}[l],0))||0;return(Number(u)+1)*12+i+n},fromMidi=s=>Math.pow(2,(s-69)/12)*440,getFreq=s=>fromMidi(typeof s=="number"?s:toMidi(s)),midi2note=s=>{const e=Math.floor(s/12)-1;return["C","Db","D","Eb","E","F","Gb","G","Ab","A","Bb","B"][s%12]+e},mod=(s,e)=>(s%e+e)%e,getPlayableNoteValue=s=>{let{value:e,context:r}=s;if(typeof e=="object"&&!Array.isArray(e)&&(e=e.note||e.n||e.value),typeof e=="number"&&r.type!=="frequency")e=fromMidi(s.value);else if(typeof e=="number"&&r.type==="frequency")e=s.value;else if(typeof e!="string"||!isNote$1(e))throw new Error("not a note: "+JSON.stringify(e));return e},getFrequency=s=>{let{value:e,context:r}=s;if(typeof e=="object")return e.freq?e.freq:getFreq(e.note||e.n||e.value);if(typeof e=="number"&&r.type!=="frequency")e=fromMidi(s.value);else if(typeof e=="string"&&isNote$1(e))e=fromMidi(toMidi(s.value));else if(typeof e!="number")throw new Error("not a note or frequency: "+e);return e},rotate=(s,e)=>s.slice(e).concat(s.slice(0,e)),pipe=(...s)=>s.reduce((e,r)=>(...u)=>e(r(...u)),e=>e),compose=(...s)=>pipe(...s.reverse()),removeUndefineds=s=>s.filter(e=>e!=null),flatten=s=>[].concat(...s),id=s=>s,constant=(s,e)=>s,listRange=(s,e)=>Array.from({length:e-s+1},(r,u)=>u+s);function curry(s,e){const r=function u(...i){if(i.length>=s.length)return s.apply(this,i);{const n=function(...a){return u.apply(this,i.concat(a))};return e&&e(n,i),n}};return e&&e(r,[]),r}function parseNumeral(s){const e=Number(s);if(!isNaN(e))return e;if(isNote$1(s))return toMidi(s);throw new Error(`cannot parse as numeral: "${s}"`)}function mapArgs(s,e){return(...r)=>s(...r.map(e))}function numeralArgs(s){return mapArgs(s,parseNumeral)}function parseFractional(s){const e=Number(s);if(!isNaN(e))return e;const r={pi:Math.PI,w:1,h:.5,q:.25,e:.125,s:.0625,t:1/3,f:.2,x:1/6}[s];if(typeof r<"u")return r;throw new Error(`cannot parse as fractional: "${s}"`)}const fractionalArgs=s=>mapArgs(s,parseFractional);function unionWithObj(s,e,r){const u=Object.keys(s).filter(i=>Object.keys(e).includes(i));return Object.assign({},s,e,Object.fromEntries(u.map(i=>[i,r(s[i],e[i])])))}curry((s,e)=>s*e);curry((s,e)=>e.map(s));function drawLine(s,e=60){let r=0,u=fraction(0),i=[""],n="";for(;i[0].lengthA.hasOnset()).map(A=>A.duration),o=gcd(...l),c=o.inverse();i=i.map(A=>A+"|"),n+="|";for(let A=0;AD.whole.begin.lte(d)&&D.whole.end.gte(m)),E=f.length-i.length;E>0&&(i=i.concat(Array(E).fill(n))),i=i.map((D,h)=>{const y=f[h];if(y){const b=y.whole.begin.eq(d)?""+y.value:"-";return D+b}return D+"."}),n+=".",u=u.add(o)}r++}return i.join(` +`)}class Pattern$3{constructor(e){V(this,"_Pattern",!0);this.query=e}queryArc(e,r){return this.query(new State(new TimeSpan(e,r)))}_splitQueries(){const e=this,r=u=>flatten(u.span.spanCycles.map(i=>e.query(u.setSpan(i))));return new Pattern$3(r)}withQuerySpan(e){return new Pattern$3(r=>this.query(r.withSpan(e)))}withQuerySpanMaybe(e){const r=this;return new Pattern$3(u=>{const i=u.withSpan(e);return i.span?r.query(i):[]})}withQueryTime(e){return new Pattern$3(r=>this.query(r.withSpan(u=>u.withTime(e))))}withHapSpan(e){return new Pattern$3(r=>this.query(r).map(u=>u.withSpan(e)))}withHapTime(e){return this.withHapSpan(r=>r.withTime(e))}_withHaps(e){return new Pattern$3(r=>e(this.query(r)))}_withHap(e){return this._withHaps(r=>r.map(e))}_setContext(e){return this._withHap(r=>r.setContext(e))}_withContext(e){return this._withHap(r=>r.setContext(e(r.context)))}_stripContext(){return this._withHap(e=>e.setContext({}))}withLocation(e,r){const u={start:{line:e[0],column:e[1],offset:e[2]},end:{line:r[0],column:r[1],offset:r[2]}};return this._withContext(i=>{const n=(i.locations||[]).concat([u]);return{...i,locations:n}})}withMiniLocation(e,r){const u={start:{line:e[0],column:e[1],offset:e[2]},end:{line:r[0],column:r[1],offset:r[2]}};return this._withContext(i=>{let n=i.locations||[];return n=n.map(({start:a,end:l})=>{const o=a.line===1?u.start.column:0;return{start:{...a,line:a.line-1+(u.start.line-1)+1,column:a.column-1+o},end:{...l,line:l.line-1+(u.start.line-1)+1,column:l.column-1+o}}}),{...i,locations:n}})}withValue(e){return new Pattern$3(r=>this.query(r).map(u=>u.withValue(e)))}fmap(e){return this.withValue(e)}_filterHaps(e){return new Pattern$3(r=>this.query(r).filter(e))}_filterValues(e){return new Pattern$3(r=>this.query(r).filter(u=>e(u.value)))}_removeUndefineds(){return this._filterValues(e=>e!=null)}onsetsOnly(){return this._filterHaps(e=>e.hasOnset())}discreteOnly(){return this._filterHaps(e=>e.whole)}_appWhole(e,r){const u=this,i=function(n){const a=u.query(n),l=r.query(n),o=function(c,A){const d=c.part.intersection(A.part);if(d!=null)return new Hap(e(c.whole,A.whole),d,c.value(A.value),A.combineContext(c))};return flatten(a.map(c=>removeUndefineds(l.map(A=>o(c,A)))))};return new Pattern$3(i)}appBoth(e){const r=function(u,i){if(!(u==null||i==null))return u.intersection_e(i)};return this._appWhole(r,e)}appLeft(e){const r=this,u=function(i){const n=[];for(const a of r.query(i)){const l=e.query(i.setSpan(a.wholeOrPart()));for(const o of l){const c=a.whole,A=a.part.intersection(o.part);if(A){const d=a.value(o.value),m=o.combineContext(a),f=new Hap(c,A,d,m);n.push(f)}}}return n};return new Pattern$3(u)}appRight(e){const r=this,u=function(i){const n=[];for(const a of e.query(i)){const l=r.query(i.setSpan(a.wholeOrPart()));for(const o of l){const c=a.whole,A=o.part.intersection(a.part);if(A){const d=o.value(a.value),m=a.combineContext(o),f=new Hap(c,A,d,m);n.push(f)}}}return n};return new Pattern$3(u)}firstCycle(e=!1){var r=this;return e||(r=r._stripContext()),r.query(new State(new TimeSpan(fraction(0),fraction(1))))}get _firstCycleValues(){return this.firstCycle().map(e=>e.value)}get _showFirstCycle(){return this.firstCycle().map(e=>`${e.value}: ${e.whole.begin.toFraction()} - ${e.whole.end.toFraction()}`)}_sortHapsByPart(){return this._withHaps(e=>e.sort((r,u)=>r.part.begin.sub(u.part.begin).or(r.part.end.sub(u.part.end)).or(r.whole.begin.sub(u.whole.begin).or(r.whole.end.sub(u.whole.end)))))}_opIn(e,r){return this.fmap(r).appLeft(reify$1(e))}_opOut(e,r){return this.fmap(r).appRight(reify$1(e))}_opMix(e,r){return this.fmap(r).appBoth(reify$1(e))}_opSqueeze(e,r){const u=reify$1(e);return this.fmap(i=>u.fmap(n=>r(i)(n)))._squeezeJoin()}_opSqueezeOut(e,r){const u=this;return reify$1(e).fmap(n=>u.fmap(a=>r(a)(n)))._squeezeJoin()}_opTrig(e,r){return reify$1(e).fmap(i=>this.fmap(n=>r(n)(i)))._trigJoin()}_opTrigzero(e,r){return reify$1(e).fmap(i=>this.fmap(n=>r(n)(i)))._TrigzeroJoin()}_asNumber(){return this.fmap(parseNumeral)}round(){return this._asNumber().fmap(e=>Math.round(e))}floor(){return this._asNumber().fmap(e=>Math.floor(e))}ceil(){return this._asNumber().fmap(e=>Math.ceil(e))}_toBipolar(){return this.fmap(e=>e*2-1)}_fromBipolar(){return this.fmap(e=>(e+1)/2)}_range(e,r){return this.mul(r-e).add(e)}_rangex(e,r){return this._range(Math.log(e),Math.log(r)).fmap(Math.exp)}_range2(e,r){return this._fromBipolar()._range(e,r)}_bindWhole(e,r){const u=this,i=function(n){const a=function(o,c){return new Hap(e(o.whole,c.whole),c.part,c.value,Object.assign({},o.context,c.context,{locations:(o.context.locations||[]).concat(c.context.locations||[])}))},l=function(o){return r(o.value).query(n.setSpan(o.part)).map(c=>a(o,c))};return flatten(u.query(n).map(o=>l(o)))};return new Pattern$3(i)}bind(e){const r=function(u,i){if(!(u==null||i==null))return u.intersection_e(i)};return this._bindWhole(r,e)}join(){return this.bind(id)}outerBind(e){return this._bindWhole((r,u)=>r,e)}outerJoin(){return this.outerBind(id)}innerBind(e){return this._bindWhole((r,u)=>u,e)}innerJoin(){return this.innerBind(id)}_trigJoin(e=!1){const r=this;return new Pattern$3(u=>r.discreteOnly().query(u).map(i=>i.value.late(e?i.whole.begin:i.whole.begin.cyclePos()).query(u).map(n=>new Hap(n.whole?n.whole.intersection(i.whole):void 0,n.part.intersection(i.part),n.value).setContext(i.combineContext(n))).filter(n=>n.part)).flat())}_TrigzeroJoin(){return this._trigJoin(!0)}_squeezeJoin(){const e=this;function r(u){const i=e.discreteOnly().query(u);function n(l){const c=l.value._focusSpan(l.wholeOrPart()).query(u.setSpan(l.part));function A(d,m){let f;if(m.whole&&d.whole&&(f=m.whole.intersection(d.whole),!f))return;const E=m.part.intersection(d.part);if(!E)return;const D=m.combineContext(d);return new Hap(f,E,m.value,D)}return c.map(d=>A(l,d))}return flatten(i.map(n)).filter(l=>l)}return new Pattern$3(r)}_squeezeBind(e){return this.fmap(e)._squeezeJoin()}_apply(e){return e(this)}layer(...e){return stack(...e.map(r=>r(this)))}_patternify(e){const r=this;return function(...i){return i=i.map(a=>isPattern$1(a)?a.fmap(l=>l.value||l):a),sequence(...i).fmap(a=>e.call(r,a)).innerJoin()}}_fastGap(e){const r=function(i){const n=i.begin.sam(),a=i.begin.sub(n).mul(e).min(1),l=i.end.sub(n).mul(e).min(1);if(!(a>=1))return new TimeSpan(n.add(a),n.add(l))},u=function(i){const n=i.part.begin,a=i.part.end,l=n.sam(),o=n.sub(l).div(e).min(1),c=a.sub(l).div(e).min(1),A=new TimeSpan(l.add(o),l.add(c)),d=i.whole?new TimeSpan(A.begin.sub(n.sub(i.whole.begin).div(e)),A.end.add(i.whole.end.sub(a).div(e))):void 0;return new Hap(d,A,i.value,i.context)};return this.withQuerySpanMaybe(r)._withHap(u)._splitQueries()}_compress(e,r){return e.gt(r)||e.gt(1)||r.gt(1)||e.lt(0)||r.lt(0)?silence:this._fastGap(fraction(1).div(r.sub(e)))._late(e)}_compressSpan(e){return this._compress(e.begin,e.end)}_focus(e,r){return this._fast(fraction(1).div(r.sub(e))).late(e.cyclePos())}_focusSpan(e){return this._focus(e.begin,e.end)}_fast(e){return this.withQueryTime(u=>u.mul(e)).withHapTime(u=>u.div(e))}_slow(e){return this._fast(fraction(1).div(e))}_inside(e,r){return r(this._slow(e))._fast(e)}_outside(e,r){return r(this._fast(e))._slow(e)}_ply(e){return this.fmap(r=>pure(r)._fast(e))._squeezeJoin()}_chop(e){const u=Array.from({length:e},(n,a)=>a).map(n=>({begin:n/e,end:(n+1)/e})),i=function(n){return sequence(u.map(a=>Object.assign({},n,a)))};return this._squeezeBind(i)}_striate(e){const u=Array.from({length:e},(n,a)=>a).map(n=>({begin:n/e,end:(n+1)/e})),i=slowcat(...u);return this.set(i)._fast(e)}_cpm(e){return this._fast(e/60)}_early(e){return e=fraction(e),this.withQueryTime(r=>r.add(e)).withHapTime(r=>r.sub(e))}_late(e){return e=fraction(e),this._early(fraction(0).sub(e))}_zoom(e,r){r=fraction(r),e=fraction(e);const u=r.sub(e);return this.withQuerySpan(i=>i.withCycle(n=>n.mul(u).add(e))).withHapSpan(i=>i.withCycle(n=>n.sub(e).div(u)))._splitQueries()}_zoomArc(e){return this.zoom(e.begin,e.end)}_linger(e){return e==0?silence:e<0?this._zoom(e.add(1),1)._slow(e):this._zoom(0,e)._slow(e)}_color(e){return this._withContext(r=>({...r,color:e}))}log(){return this._withHap(e=>{var r;return e.setContext({...e.context,logs:(((r=e.context)==null?void 0:r.logs)||[]).concat([e.show()])})})}drawLine(){return console.log(drawLine(this)),this}_segment(e){return this.struct(pure(!0)._fast(e))}invert(){return this.fmap(e=>!e)}inv(){return this.invert()}when(e,r){const u=e._filterValues(id),i=e._filterValues(l=>!l),n=u.fmap(l=>o=>o).appRight(r(this)),a=i.fmap(l=>o=>o).appRight(this);return stack(n,a)}off(e,r){return stack(this,r(this.late(e)))}every(e,r){const u=this,i=Array(e-1).fill(u);return i.push(r(u)),slowcatPrime(...i)}every(e,r){const u=this,i=Array(e-1).fill(u);return i.unshift(r(u)),slowcatPrime(...i)}each(e,r){const u=this,i=Array(e-1).fill(u);return i.push(r(u)),slowcatPrime(...i)}brak(){return this.when(slowcat(!1,!0),e=>fastcat(e,silence)._late(.25))}rev(){const e=this,r=function(u){const i=u.span,n=i.begin.sam(),a=i.begin.nextSam(),l=function(c){const A=c.withTime(m=>n.add(a.sub(m))),d=A.begin;return A.begin=A.end,A.end=d,A};return e.query(u.setSpan(l(i))).map(c=>c.withSpan(l))};return new Pattern$3(r)._splitQueries()}palindrome(){return this.every(2,rev)}juxBy(e,r){e/=2;const u=function(a,l,o){return l in a?a[l]:o},i=this.withValue(a=>Object.assign({},a,{pan:u(a,"pan",.5)-e})),n=this.withValue(a=>Object.assign({},a,{pan:u(a,"pan",.5)+e}));return stack(i,r(n))}_jux(e){return this.juxBy(1,e)}stack(...e){return stack(this,...e)}sequence(...e){return sequence(this,...e)}seq(...e){return sequence(this,...e)}cat(...e){return cat(this,...e)}fastcat(...e){return fastcat(this,...e)}slowcat(...e){return slowcat(this,...e)}superimpose(...e){return this.stack(...e.map(r=>r(this)))}stutWith(e,r,u){return stack(...listRange(0,e-1).map(i=>u(this.late(fraction(r).mul(i)),i)))}stut(e,r,u){return this.stutWith(e,u,(i,n)=>i.velocity(Math.pow(r,n)))}_echoWith(e,r,u){return stack(...listRange(0,e-1).map(i=>u(this.late(fraction(r).mul(i)),i)))}_echo(e,r,u){return this._echoWith(e,r,(i,n)=>i.velocity(Math.pow(u,n)))}iter(e,r=!1){return slowcat(...listRange(0,e-1).map(u=>r?this.late(u/e):this.early(u/e)))}iterBack(e){return this.iter(e,!0)}_chunk(e,r,u=!1){const i=Array(e-1).fill(!1);i.unshift(!0);const n=sequence(...i).iter(e,u);return this.when(n,r)}_chunkBack(e,r){return this._chunk(e,r,!0)}_bypass(e){return e=Boolean(parseInt(e)),e?silence:this}hush(){return silence}_duration(e){return this.withHapSpan(r=>new TimeSpan(r.begin,r.begin.add(e)))}_legato(e){return this.withHapSpan(r=>new TimeSpan(r.begin,r.begin.add(r.end.sub(r.begin).mul(e))))}_velocity(e){return this._withContext(r=>({...r,velocity:(r.velocity||1)*e}))}_loopAt(e,r=1){return this.speed(1/e*r).unit("c").slow(e)}onTrigger(e){return this._withHap(r=>r.setContext({...r.context,onTrigger:e}))}log(e=id){return this._withHap(r=>r.setContext({...r.context,onTrigger:(...u)=>{r.context.onTrigger&&r.context.onTrigger(...u),console.log(e(...u))}}))}logValues(e=id){return this.log((r,u)=>e(u.value))}}function _composeOp(s,e,r){function u(i){return i instanceof Object&&!(i instanceof Function)}return u(s)||u(e)?(u(s)||(s={value:s}),u(e)||(e={value:e}),unionWithObj(s,e,r)):r(s,e)}(function(){const s={set:[(e,r)=>r],keep:[(e,r)=>e],keepif:[(e,r)=>r?e:void 0],add:[numeralArgs((e,r)=>e+r)],sub:[numeralArgs((e,r)=>e-r)],mul:[numeralArgs((e,r)=>e*r)],div:[numeralArgs((e,r)=>e/r)],mod:[numeralArgs(mod)],pow:[numeralArgs(Math.pow)],_and:[numeralArgs((e,r)=>e&r)],_or:[numeralArgs((e,r)=>e|r)],_xor:[numeralArgs((e,r)=>e^r)],_lshift:[numeralArgs((e,r)=>e<e>>r)],lt:[(e,r)=>ee>r],lte:[(e,r)=>e<=r],gte:[(e,r)=>e>=r],eq:[(e,r)=>e==r],eqt:[(e,r)=>e===r],ne:[(e,r)=>e!=r],net:[(e,r)=>e!==r],and:[(e,r)=>e&&r],or:[(e,r)=>e||r],func:[(e,r)=>r(e)]};for(const[e,[r,u]]of Object.entries(s))for(const i of["In","Out","Mix","Squeeze","SqueezeOut","Trig","Trigzero"])Pattern$3.prototype[e+i]=function(...n){var a=this;n=sequence(n),u&&(a=u(a),n=u(n));var l;return e==="keepif"?(l=a["_op"+i](n,o=>c=>r(o,c)),l=l._removeUndefineds()):l=a["_op"+i](n,o=>c=>_composeOp(o,c,r)),l},i==="Squeeze"&&(Pattern$3.prototype[e+"SqueezeIn"]=Pattern$3.prototype[e+i]),i==="In"?Pattern$3.prototype[e]=Pattern$3.prototype[e+i]:e==="set"&&(Pattern$3.prototype[i.toLowerCase()]=Pattern$3.prototype[e+i]);Pattern$3.prototype.struct=Pattern$3.prototype.keepifOut,Pattern$3.prototype.structAll=Pattern$3.prototype.keepOut,Pattern$3.prototype.mask=Pattern$3.prototype.keepifIn,Pattern$3.prototype.maskAll=Pattern$3.prototype.keepIn,Pattern$3.prototype.reset=Pattern$3.prototype.keepifTrig,Pattern$3.prototype.resetAll=Pattern$3.prototype.keepTrig,Pattern$3.prototype.restart=Pattern$3.prototype.keepifTrigzero,Pattern$3.prototype.restartAll=Pattern$3.prototype.keepTrigzero})();Pattern$3.prototype.patternified=["apply","chop","color","cpm","duration","early","fast","jux","late","legato","linger","ply","segment","striate","slow","velocity"];const polyrhythm=stack,pr=stack;Pattern$3.prototype.factories={pure,stack,slowcat,fastcat,cat,timeCat,sequence,seq:seq$2,polymeter,pm,polyrhythm,pr};const silence=new Pattern$3(s=>[]);function pure(s){function e(r){return r.span.spanCycles.map(u=>new Hap(fraction(u.begin).wholeCycle(),u,s))}return new Pattern$3(e)}function isPattern$1(s){const e=s instanceof Pattern$3||(s==null?void 0:s._Pattern);return!s instanceof Pattern$3&&console.warn(`Found Pattern that fails "instanceof Pattern" check. + This may happen if you are using multiple versions of @strudel.cycles/core. + Please check by running "npm ls @strudel.cycles/core".`),e}function reify$1(s){return isPattern$1(s)?s:pure(s)}function stack(...s){s=s.map(r=>Array.isArray(r)?sequence(...r):reify$1(r));const e=r=>flatten(s.map(u=>u.query(r)));return new Pattern$3(e)}function slowcat(...s){s=s.map(r=>Array.isArray(r)?sequence(...r):reify$1(r));const e=function(r){const u=r.span,i=mod(u.begin.sam(),s.length),n=s[i];if(!n)return[];const a=u.begin.floor().sub(u.begin.div(s.length).floor());return n.withHapTime(l=>l.add(a)).query(r.setSpan(u.withTime(l=>l.sub(a))))};return new Pattern$3(e)._splitQueries()}function slowcatPrime(...s){s=s.map(reify$1);const e=function(r){const u=Math.floor(r.span.begin)%s.length,i=s[u];return(i==null?void 0:i.query(r))||[]};return new Pattern$3(e)._splitQueries()}function fastcat(...s){return slowcat(...s)._fast(s.length)}function cat(...s){return slowcat(...s)}function timeCat(...s){const e=s.map(i=>i[0]).reduce((i,n)=>i.add(n),fraction(0));let r=fraction(0);const u=[];for(const[i,n]of s){const a=r.add(i);u.push(reify$1(n)._compress(r.div(e),a.div(e))),r=a}return stack(...u)}function sequence(...s){return fastcat(...s)}function seq$2(...s){return fastcat(...s)}function _sequenceCount(s){return Array.isArray(s)?s.length==0?[silence,0]:s.length==1?_sequenceCount(s[0]):[fastcat(...s.map(e=>_sequenceCount(e)[0])),s.length]:[reify$1(s),1]}function polymeterSteps(s,...e){const r=e.map(i=>_sequenceCount(i));if(r.length==0)return silence;s==0&&(s=r[0][1]);const u=[];for(const i of r)i[1]==0&&next,s==i[1]?u.push(i[0]):u.push(i[0]._fast(fraction(s).div(fraction(i[1]))));return stack(...u)}function polymeter(...s){return polymeterSteps(0,...s)}function pm(...s){polymeter(...s)}const add=curry((s,e)=>e.add(s)),chop=curry((s,e)=>e.chop(s)),chunk=curry((s,e)=>e.chunk(s)),chunkBack=curry((s,e)=>e.chunkBack(s)),div=curry((s,e)=>e.div(s)),early=curry((s,e)=>e.early(s)),echo=curry((s,e,r,u)=>u.echo(s,e,r)),every=curry((s,e,r)=>r.every(s,e)),fast=curry((s,e)=>e.fast(s)),inv=s=>s.inv(),invert=s=>s.invert(),iter=curry((s,e)=>e.iter(s)),iterBack=curry((s,e)=>e.iter(s)),jux=curry((s,e)=>e.jux(s)),juxBy=curry((s,e,r)=>r.juxBy(s,e)),late=curry((s,e)=>e.late(s)),linger=curry((s,e)=>e.linger(s)),mask=curry((s,e)=>e.mask(s)),mul=curry((s,e)=>e.mul(s)),off=curry((s,e,r)=>r.off(s,e)),ply=curry((s,e)=>e.ply(s)),range=curry((s,e,r)=>r.range(s,e)),rangex=curry((s,e,r)=>r.rangex(s,e)),range2=curry((s,e,r)=>r.range2(s,e)),rev=s=>s.rev(),slow=curry((s,e)=>e.slow(s)),struct=curry((s,e)=>e.struct(s)),sub=curry((s,e)=>e.sub(s)),superimpose=curry((s,e)=>e.superimpose(...s)),set=curry((s,e)=>e.set(s)),when=curry((s,e,r)=>r.when(s,e));Pattern$3.prototype.composable={fast,slow,early,late,superimpose};function makeComposable(s){return Object.entries(Pattern$3.prototype.composable).forEach(([e,r])=>{s[e]=(...u)=>{const i=compose(s,r(...u));return makeComposable(i)}}),s}const patternify2=s=>(e,r,u)=>e.fmap(i=>n=>s.call(u,i,n)).appLeft(r).innerJoin(),patternify3=s=>(e,r,u,i)=>e.fmap(n=>a=>l=>s.call(i,n,a,l)).appLeft(r).appLeft(u).innerJoin(),patternify4=s=>(e,r,u,i,n)=>e.fmap(a=>l=>o=>c=>s.call(n,a,l,o,c)).appLeft(r).appLeft(u).appLeft(i).innerJoin();Pattern$3.prototype.echo=function(...s){return s=s.map(reify$1),patternify3(Pattern$3.prototype._echo)(...s,this)};Pattern$3.prototype.echoWith=function(...s){return s=s.map(reify$1),patternify3(Pattern$3.prototype._echoWith)(...s,this)};Pattern$3.prototype.chunk=function(...s){return s=s.map(reify$1),patternify2(Pattern$3.prototype._chunk)(...s,this)};Pattern$3.prototype.chunkBack=function(...s){return s=s.map(reify$1),patternify2(Pattern$3.prototype._chunkBack)(...s,this)};Pattern$3.prototype.loopAt=function(...s){return s=s.map(reify$1),patternify2(Pattern$3.prototype._loopAt)(...s,this)};Pattern$3.prototype.zoom=function(...s){return s=s.map(reify$1),patternify2(Pattern$3.prototype._zoom)(...s,this)};Pattern$3.prototype.compress=function(...s){return s=s.map(reify$1),patternify2(Pattern$3.prototype._compress)(...s,this)};Pattern$3.prototype.outside=function(...s){return s=s.map(reify$1),patternify2(Pattern$3.prototype._outside)(...s,this)};Pattern$3.prototype.inside=function(...s){return s=s.map(reify$1),patternify2(Pattern$3.prototype._inside)(...s,this)};Pattern$3.prototype.range=function(...s){return s=s.map(reify$1),patternify2(Pattern$3.prototype._range)(...s,this)};Pattern$3.prototype.rangex=function(...s){return s=s.map(reify$1),patternify2(Pattern$3.prototype._rangex)(...s,this)};Pattern$3.prototype.range2=function(...s){return s=s.map(reify$1),patternify2(Pattern$3.prototype._range2)(...s,this)};Pattern$3.prototype.bootstrap=function(){const s=Object.fromEntries(Object.entries(Pattern$3.prototype.composable).map(([e,r])=>(Pattern$3.prototype[e]&&(Pattern$3.prototype[e]=makeComposable(Pattern$3.prototype[e])),[e,curry(r,makeComposable)])));return this.patternified.forEach(e=>{Pattern$3.prototype[e]=function(...r){return this._patternify(Pattern$3.prototype["_"+e])(...r)}}),s};Pattern$3.prototype.define=(s,e,r={})=>{r.composable&&(Pattern$3.prototype.composable[s]=e),r.patternified&&(Pattern$3.prototype.patternified=Pattern$3.prototype.patternified.concat([s])),Pattern$3.prototype.bootstrap()};Pattern$3.prototype.define("hush",s=>s.hush(),{patternified:!1,composable:!0});Pattern$3.prototype.define("bypass",s=>s.bypass(on),{patternified:!0,composable:!0});const controls={},generic_params=[["s","s","sound"],["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","accelerate","a pattern of numbers that speed up (or slow down) samples while they play."],["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","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","bank","selects sound bank to use"],["f","decay",""],["f","sustain",""],["f","release","a pattern of numbers to specify the release time (in seconds) of an envelope applied to each sample."],["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","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","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","loop","loops the sample (from `begin` to `end`) the specified number of times."],["f","legato","controls the amount of overlap between two adjacent sounds"],["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","hcutoff","a pattern of numbers from 0 to 1. Applies the cutoff frequency of the high-pass filter. Also has alias @hpf@"],["f","hresonance","a pattern of numbers from 0 to 1. Applies the resonance of the high-pass filter. Has alias @hpq@"],["f","resonance","a pattern of numbers from 0 to 1. Specifies the resonance of the low-pass filter."],["f","djf","DJ filter, below 0.5 is low pass filter, above is high pass filter."],["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","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","detune",""],["f","dry","when set to `1` will disable all reverb for this pattern. See `room` and `size` for more information about reverb."],["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","gate",""],["f","leslie",""],["f","lrate",""],["f","lsize",""],["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",""],["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","rate","used in SuperDirt softsynths as a control rate or 'speed'"],["f","slide",""],["f","semitone",""],["f","velocity",""],["f","voice",""],["f","room","a pattern of numbers from 0 to 1. Sets the level of reverb."],["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","roomsize","a pattern of numbers from 0 to 1. Sets the perceptual size (reverb time) of the `room` to be used in reverb."],["f","shape","wave shaping distortion, a pattern of numbers from 0 for no distortion up to 1 for loads of distortion."],["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!"],["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","squiz",""],["f","stutterdepth",""],["f","stuttertime",""],["f","timescale",""],["f","timescalewin",""],["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","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",""],["f","clip",""]],_name=(s,...e)=>sequence(...e).withValue(r=>({[s]:r})),_setter=(s,e)=>function(...r){return r.length?this.set(s(...r)):this.fmap(u=>({[e]:u}))};generic_params.forEach(([s,e,r])=>{controls[e]=(...u)=>_name(e,...u),Pattern$3.prototype[e]=_setter(controls[e],e)});controls.createParam=s=>{const e=(...r)=>_name(s,...r);return Pattern$3.prototype[s]=_setter(e,s),(...r)=>_name(s,...r)};controls.createParams=(...s)=>s.reduce((e,r)=>Object.assign(e,{[r]:createParam(r)}),{});function bjorklund(s,e){for(var r=[],u=[],i=[e],n=s-e,a=0,l=function(o){if(o==-1)r.push(0);else if(o==-2)r.push(1);else{for(var c=0;c1;)u.push(Math.floor(n/i[a])),i.push(n%i[a]),n=i[a],a++;return u.push(n),l(a),r.reverse()}var bjork=function(s,e){return s>e?bjorklund(s,e):bjorklund(e,s)};const euclid=(s,e,r=0)=>{const u=bjork(e,s);return r?rotate(u,-r):u};Pattern$3.prototype.euclid=function(s,e,r=0){return this.struct(euclid(s,e,r))};Pattern$3.prototype.euclidLegato=function(s,e,r=0){const u=euclid(s,e,r),i=u.indexOf(1),n=rotate(u,i).join("").split("1").slice(1).map(a=>[a.length+1,!0]);return this.struct(timeCat(...n)).late(fraction(i).div(e))};function steady(s){return new Pattern$3(e=>[new Hap(void 0,e.span,s)])}const signal=s=>{const e=r=>[new Hap(void 0,r.span,s(r.span.midpoint()))];return new Pattern$3(e)},isaw=signal(s=>1-s%1),isaw2=isaw._toBipolar(),saw=signal(s=>s%1),saw2=saw._toBipolar(),sine2=signal(s=>Math.sin(Math.PI*2*s)),sine=sine2._fromBipolar(),cosine=sine._early(fraction(1).div(4)),cosine2=sine2._early(fraction(1).div(4)),square=signal(s=>Math.floor(s*2%2)),square2=square._toBipolar(),tri=fastcat(isaw,saw),tri2=fastcat(isaw2,saw2),time=signal(id),xorwise=s=>{const e=s<<13^s,r=e>>17^e;return r<<5^r},_frac=s=>s-Math.trunc(s),timeToIntSeed=s=>xorwise(Math.trunc(_frac(s/300)*536870912)),intSeedToRand=s=>s%536870912/536870912,timeToRand=s=>Math.abs(intSeedToRand(timeToIntSeed(s))),rand=signal(timeToRand),rand2=rand._toBipolar(),_brandBy=s=>rand.fmap(e=>ereify$1(s).fmap(_brandBy).innerJoin(),brand=_brandBy(.5),_irand=s=>rand.fmap(e=>Math.trunc(e*s)),irand=s=>reify$1(s).fmap(_irand).innerJoin(),__chooseWith=(s,e)=>(e=e.map(reify$1),e.length==0?silence:s.range(0,e.length).fmap(r=>e[Math.floor(r)])),chooseWith=(s,e)=>__chooseWith(s,e).outerJoin(),chooseInWith=(s,e)=>__chooseWith(s,e).innerJoin(),choose=(...s)=>chooseWith(rand,s);Pattern$3.prototype.choose=function(...s){return chooseWith(this,s)};Pattern$3.prototype.choose2=function(...s){return chooseWith(this._fromBipolar(),s)};const chooseCycles=(...s)=>chooseInWith(rand.segment(1),s),randcat=chooseCycles,_wchooseWith=function(s,...e){const r=e.map(l=>reify$1(l[0])),u=[];let i=0;for(const l of e)i+=l[1],u.push(i);const n=i,a=function(l){const o=l*n;return r[u.findIndex(c=>c>o,u)]};return s.fmap(a)},wchooseWith=(...s)=>_wchooseWith(...s).outerJoin(),wchoose=(...s)=>wchooseWith(rand,...s),wchooseCycles=(...s)=>_wchooseWith(rand,...s).innerJoin(),perlinWith=s=>{const e=s.fmap(Math.floor),r=s.fmap(n=>Math.floor(n)+1),u=n=>6*n**5-15*n**4+10*n**3,i=n=>a=>l=>a+u(n)*(l-a);return s.sub(e).fmap(i).appBoth(e.fmap(timeToRand)).appBoth(r.fmap(timeToRand))},perlin=perlinWith(time.fmap(s=>Number(s)));Pattern$3.prototype._degradeByWith=function(s,e){return this.fmap(r=>u=>r).appLeft(s._filterValues(r=>r>e))};Pattern$3.prototype._degradeBy=function(s){return this._degradeByWith(rand,s)};Pattern$3.prototype.degrade=function(){return this._degradeBy(.5)};Pattern$3.prototype._undegradeBy=function(s){return this._degradeByWith(rand.fmap(e=>1-e),s)};Pattern$3.prototype.undegrade=function(){return this._undegradeBy(.5)};Pattern$3.prototype._sometimesBy=function(s,e){return stack(this._degradeBy(s),e(this._undegradeBy(1-s)))};Pattern$3.prototype.sometimesBy=function(s,e){const r=this;return reify$1(s).fmap(u=>r._sometimesBy(u,e)).innerJoin()};Pattern$3.prototype._sometimesByPre=function(s,e){return stack(this._degradeBy(s),e(this).undegradeBy(1-s))};Pattern$3.prototype.sometimesByPre=function(s,e){const r=this;return reify$1(s).fmap(u=>r._sometimesByPre(u,e)).innerJoin()};Pattern$3.prototype.sometimes=function(s){return this._sometimesBy(.5,s)};Pattern$3.prototype.sometimesPre=function(s){return this._sometimesByPre(.5,s)};Pattern$3.prototype._someCyclesBy=function(s,e){return stack(this._degradeByWith(rand._segment(1),s),e(this._degradeByWith(rand.fmap(r=>1-r)._segment(1),1-s)))};Pattern$3.prototype.someCyclesBy=function(s,e){const r=this;return reify$1(s).fmap(u=>r._someCyclesBy(u,e)).innerJoin()};Pattern$3.prototype.someCycles=function(s){return this._someCyclesBy(.5,s)};Pattern$3.prototype.often=function(s){return this.sometimesBy(.75,s)};Pattern$3.prototype.rarely=function(s){return this.sometimesBy(.25,s)};Pattern$3.prototype.almostNever=function(s){return this.sometimesBy(.1,s)};Pattern$3.prototype.almostAlways=function(s){return this.sometimesBy(.9,s)};Pattern$3.prototype.never=function(s){return this};Pattern$3.prototype.always=function(s){return s(this)};Pattern$3.prototype.patternified.push("degradeBy","undegradeBy");let synth;try{synth=window==null?void 0:window.speechSynthesis}catch{console.warn("cannot use window: not in browser?")}let allVoices=synth==null?void 0:synth.getVoices();function speak(s,e,r){synth.cancel();const u=new SpeechSynthesisUtterance(s);u.lang=e,allVoices=synth.getVoices();const i=allVoices.filter(n=>n.lang.includes(e));typeof r=="number"?u.voice=i[r%i.length]:typeof r=="string"&&(u.voice=i.find(n=>n.name===n)),speechSynthesis.speak(u)}Pattern$3.prototype._speak=function(s,e){return this._withHap(r=>{const u=(i,n)=>{speak(n.value,s,e)};return r.setContext({...r.context,onTrigger:u})})};Pattern$3.prototype.speak=function(s,e){return patternify2(Pattern$3.prototype._speak)(reify(s),reify(e),this)};const stringifyFunction=s=>"("+s+")();",urlifyFunction=s=>URL.createObjectURL(new Blob([stringifyFunction(s)],{type:"text/javascript"})),createWorker=s=>new Worker(urlifyFunction(s));class ClockWorker{constructor(e,r){V(this,"worker");V(this,"interval",1/20);V(this,"tick",0);this.interval=r||this.interval,this.worker=createWorker(()=>{let u,i=null;const n=()=>{i&&(clearInterval(i),i=null)},a=()=>{if(n(),!u)throw new Error("no interval set! call worker.postMessage({interval}) before starting.");postMessage("tick"),i=setInterval(()=>postMessage("tick"),u*1e3)};self.onmessage=function(l){l.data=="start"?a():l.data.interval?(u=l.data.interval,i&&a()):l.data=="stop"&&n()}}),this.setInterval(this.interval),this.worker.onmessage=u=>{u.data==="tick"&&e(this.tick++,this.interval)}}start(){this.worker.postMessage("start")}stop(){this.worker.postMessage("stop"),this.tick=0}setInterval(e){this.worker.postMessage({interval:e})}}class Scheduler{constructor({interval:e,onTrigger:r,onError:u,latency:i=.2,getTime:n}){V(this,"worker");V(this,"pattern");V(this,"started",!1);V(this,"phase",0);V(this,"cps",1);V(this,"getTime");V(this,"lastTime");this.worker=new ClockWorker((a,l)=>{try{const o=n();if(!this.lastTime){this.lastTime=o;return}const c=o-this.lastTime;this.lastTime=o;const A=this.phase,d=this.phase+c*this.cps;this.phase=d,this.pattern.queryArc(A,d).forEach(f=>{var _,b;if(typeof((_=f.value)==null?void 0:_.cps)=="number"&&this.setCps((b=f.value)==null?void 0:b.cps),!f.part.begin.equals(f.whole.begin))return;const E=o+(f.whole.begin-A)/this.cps-c+l+i,D=f.duration/this.cps,h=n(),y=E-h;if(En.hasOnset());console.log(`${e.toFixed(4)} - ${r.toFixed(4)} ${Array(i.length).fill("I").join("")}`)}}const{isPattern,Pattern:Pattern$2}=strudel;let scoped=!1;const evalScope=async(...s)=>{scoped&&console.warn("evalScope was called more than once."),scoped=!0;const e=await Promise.allSettled(s),r=e.filter(u=>u.status==="fulfilled").map(u=>u.value);e.forEach((u,i)=>{u.status==="rejected"&&console.warn(`evalScope: module with index ${i} could not be loaded:`,u.reason)}),Object.assign(globalThis,...r,Pattern$2.prototype.bootstrap())};function safeEval(s){return Function('"use strict";return ('+s+")")()}const evaluate$1=async(s,e)=>{scoped||await evalScope(),e&&(s=e(s));let r=await safeEval(s);if(!isPattern(r)){console.log("evaluated",r);const u=`got "${typeof r}" instead of pattern`;throw new Error(u+(typeof r=="function"?", did you forget to call a function?":"."))}return{mode:"javascript",pattern:r}};function createClock(s,e,r=.05,u=.1,i=.1){let n=0,a=0,l=10**4,o=.01;const c=y=>r=y(r);i=i||u/2;const A=()=>{const y=s(),_=y+u+i;for(a===0&&(a=y+o);a<_;)a=Math.round(a*l)/l,a>=y&&e(a,r,n),a{A(),d=setInterval(A,u*1e3)},f=()=>clearInterval(d);return{setDuration:c,start:m,stop:()=>{n=0,a=0,f()},pause:()=>f(),duration:r,getPhase:()=>a}}class Cyclist{constructor({interval:e,onTrigger:r,onError:u,getTime:i,latency:n=.1}){V(this,"worker");V(this,"pattern");V(this,"started",!1);V(this,"cps",1);V(this,"getTime");V(this,"phase",0);this.getTime=i;const a=l=>Math.round(l*1e3)/1e3;this.clock=createClock(i,(l,o,c)=>{c===0&&(this.origin=l);const A=a(l-this.origin);this.phase=A-n;const d=a(A+o),m=i();try{this.pattern.queryArc(A,d).forEach(E=>{if(E.part.begin.equals(E.whole.begin)){const D=E.whole.begin+this.origin-m+n,h=E.duration*1;r==null||r(E,D,h)}})}catch(f){console.warn("scheduler error",f),u==null||u(f)}},e)}getPhase(){return this.phase}start(){if(!this.pattern)throw new Error("Scheduler: no pattern set! call .setPattern first.");this.clock.start(),this.started=!0}pause(){this.clock.stop(),delete this.origin,this.started=!1}stop(){delete this.origin,this.clock.stop(),this.started=!1}setPattern(e,r=!1){this.pattern=e,r&&!this.started&&this.start()}setCps(e=1){this.cps=e}log(e,r,u){const i=u.filter(n=>n.hasOnset());console.log(`${e.toFixed(4)} - ${r.toFixed(4)} ${Array(i.length).fill("I").join("")}`)}}function repl({interval:s,defaultOutput:e,onSchedulerError:r,onEvalError:u,onEval:i,getTime:n,transpiler:a}){const l=new Cyclist({interval:s,onTrigger:e,onError:r,getTime:n});return{scheduler:l,evaluate:async c=>{if(!c)throw new Error("no code to evaluate");try{const{pattern:A}=await evaluate$1(c,a);l.setPattern(A,!0),i==null||i({pattern:A,code:c})}catch(A){console.warn(`eval error: ${A.message}`),u==null||u(A)}}}}const gist=(route,cache=!0)=>fetch(`https://gist.githubusercontent.com/${route}?cachebust=${cache?"":Date.now()}`).then(s=>s.text()).then(code=>eval(code));console.log("%c // \u{1F300} @strudel.cycles/core loaded \u{1F300}","background-color: black;color:white;padding:4px;border-radius:15px");globalThis._strudelLoaded&&console.warn(`@strudel.cycles/core was loaded more than once... +This might happen when you have multiple versions of strudel installed. +Please check with "npm ls @strudel.cycles/core".`);globalThis._strudelLoaded=!0;if(typeof DelayNode<"u"){class s extends DelayNode{constructor(r,u,i,n){super(r),u=Math.abs(u),this.delayTime.value=i;const a=r.createGain();a.gain.value=Math.min(Math.abs(n),.995),this.feedback=a.gain;const l=r.createGain();return l.gain.value=u,this.delayGain=l,this.connect(a),this.connect(l),a.connect(this),this.connect=o=>l.connect(o),this}start(r){this.delayGain.gain.setValueAtTime(this.delayGain.gain.value,r+this.delayTime.value)}}AudioContext.prototype.createFeedbackDelay=function(e,r,u){return new s(this,e,r,u)}}typeof AudioContext<"u"&&(AudioContext.prototype.impulseResponse=function(s,e=1){const r=this.sampleRate*s,u=this.createBuffer(e,r,this.sampleRate),i=u.getChannelData(0);for(let n=0;n(e.buffer=this.impulseResponse(r),e.duration=s,e),e.setDuration(s),e});const bufferCache={},loadCache={},getCachedBuffer=s=>bufferCache[s],loadBuffer=(s,e)=>(loadCache[s]||(loadCache[s]=fetch(s).then(r=>r.arrayBuffer()).then(async r=>{const u=await e.decodeAudioData(r);return bufferCache[s]=u,u})),loadCache[s]);function reverseBuffer(s){const e=getAudioContext(),r=e.createBuffer(s.numberOfChannels,s.length,e.sampleRate);for(let u=0;ubufferCache[s],githubCache={};let sampleCache={current:void 0};const loadGithubSamples=async(s,e)=>{const r="loadGithubSamples "+s,u=localStorage.getItem(r);if(u&&(console.log("[sampler]: loaded sample list from localstorage",s),githubCache[s]=JSON.parse(u)),githubCache[s])return sampleCache.current=githubCache[s],githubCache[s];console.log("[sampler]: fetching sample list from github",s);try{const[i,n,...a]=s.split("/"),l=`https://api.github.com/repos/${i}/${n}/contents`,o=await fetch(`${l}/${a.join("/")}`).then(c=>c.json());githubCache[s]=(await Promise.all(o.map(async({name:c,path:A})=>({name:c,content:await fetch(`${l}/${A}`).then(d=>d.json()).catch(d=>{console.error("could not load path",d)})})))).filter(({content:c})=>!!c).reduce((c,{name:A,content:d})=>({...c,[(e==null?void 0:e(A))||A]:d.map(({download_url:m})=>m)}),{})}catch(i){console.error("[sampler]: failed to fetch sample list from github",i);return}return sampleCache.current=githubCache[s],localStorage.setItem(r,JSON.stringify(sampleCache.current)),console.log("[sampler]: loaded samples:",sampleCache.current),githubCache[s]},samples=async(s,e=s._base||"")=>{if(typeof s=="string"){if(s.startsWith("github:")){const[u,i]=s.split("github:");s=`https://raw.githubusercontent.com/${i}/strudel.json`}if(typeof fetch!="function")return;const r=s.split("/").slice(0,-1).join("/");return typeof fetch>"u"?void 0:fetch(s).then(u=>u.json()).then(u=>samples(u,e||u._base||r)).catch(u=>{throw console.error(u),new Error(`error loading "${s}"`)})}sampleCache.current={...sampleCache.current,...Object.fromEntries(Object.entries(s).map(([r,u])=>{if(typeof u=="string"&&(u=[u]),typeof u!="object")throw new Error("wrong sample map format for "+r);e=u._base||e;const i=n=>(e+n).replace("github:","https://raw.githubusercontent.com/");return Array.isArray(u)?[r,u.map(i)]:[r,Object.fromEntries(Object.entries(u).map(([n,a])=>[n,(typeof a=="string"?[a]:a).map(i)]))]}))}},resetLoadedSamples=()=>{sampleCache.current=void 0},getLoadedSamples$1=()=>sampleCache.current;var vowelFormant={a:{freqs:[660,1120,2750,3e3,3350],gains:[1,.5012,.0708,.0631,.0126],qs:[80,90,120,130,140]},e:{freqs:[440,1800,2700,3e3,3300],gains:[1,.1995,.1259,.1,.1],qs:[70,80,100,120,120]},i:{freqs:[270,1850,2900,3350,3590],gains:[1,.0631,.0631,.0158,.0158],qs:[40,90,100,120,120]},o:{freqs:[430,820,2700,3e3,3300],gains:[1,.3162,.0501,.0794,.01995],qs:[40,80,100,120,120]},u:{freqs:[370,630,2750,3e3,3400],gains:[1,.1,.0708,.0316,.01995],qs:[40,60,100,120,120]}};if(typeof GainNode<"u"){class s extends GainNode{constructor(r,u){if(super(r),!vowelFormant[u])throw new Error("vowel: unknown vowel "+u);const{gains:i,qs:n,freqs:a}=vowelFormant[u],l=r.createGain();for(let o=0;o<5;o++){const c=r.createGain();c.gain.value=i[o];const A=r.createBiquadFilter();A.type="bandpass",A.Q.value=n[o],A.frequency.value=a[o],this.connect(A),A.connect(c),c.connect(l)}return l.gain.value=8,this.connect=o=>l.connect(o),this}}AudioContext.prototype.createVowelFilter=function(e){return new s(this,e)}}const workletsUrl="data:application/javascript;base64,Ly8gTElDRU5TRSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZGt0cjAvV2ViRGlydC9ibG9iL21haW4vTElDRU5TRQovLyBhbGwgdGhlIGNyZWRpdCBnb2VzIHRvIGRrdHIwJ3Mgd2ViZGlydDogaHR0cHM6Ly9naXRodWIuY29tL2RrdHIwL1dlYkRpcnQvYmxvYi81Y2UzZDY5ODM2MmM1NGQ2ZTFiNjhhY2M0N2ViMjk1NWFjNjJjNzkzL2Rpc3QvQXVkaW9Xb3JrbGV0cy5qcwovLyA8MwoKY2xhc3MgQ29hcnNlUHJvY2Vzc29yIGV4dGVuZHMgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHsKICBzdGF0aWMgZ2V0IHBhcmFtZXRlckRlc2NyaXB0b3JzKCkgewogICAgcmV0dXJuIFt7IG5hbWU6ICdjb2Fyc2UnLCBkZWZhdWx0VmFsdWU6IDEgfV07CiAgfQoKICBjb25zdHJ1Y3RvcigpIHsKICAgIHN1cGVyKCk7CiAgICB0aGlzLm5vdFN0YXJ0ZWQgPSB0cnVlOwogIH0KCiAgcHJvY2VzcyhpbnB1dHMsIG91dHB1dHMsIHBhcmFtZXRlcnMpIHsKICAgIGNvbnN0IGlucHV0ID0gaW5wdXRzWzBdOwogICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0c1swXTsKICAgIGNvbnN0IGNvYXJzZSA9IHBhcmFtZXRlcnMuY29hcnNlOwogICAgY29uc3QgYmxvY2tTaXplID0gMTI4OwogICAgY29uc3QgaGFzSW5wdXQgPSAhKGlucHV0WzBdID09PSB1bmRlZmluZWQpOwogICAgaWYgKGhhc0lucHV0KSB7CiAgICAgIHRoaXMubm90U3RhcnRlZCA9IGZhbHNlOwogICAgICBvdXRwdXRbMF1bMF0gPSBpbnB1dFswXVswXTsKICAgICAgZm9yIChsZXQgbiA9IDE7IG4gPCBibG9ja1NpemU7IG4rKykgewogICAgICAgIGZvciAobGV0IG8gPSAwOyBvIDwgb3V0cHV0Lmxlbmd0aDsgbysrKSB7CiAgICAgICAgICBvdXRwdXRbb11bbl0gPSBuICUgY29hcnNlID09IDAgPyBpbnB1dFswXVtuXSA6IG91dHB1dFtvXVtuIC0gMV07CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQoKcmVnaXN0ZXJQcm9jZXNzb3IoJ2NvYXJzZS1wcm9jZXNzb3InLCBDb2Fyc2VQcm9jZXNzb3IpOwoKY2xhc3MgQ3J1c2hQcm9jZXNzb3IgZXh0ZW5kcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgewogIHN0YXRpYyBnZXQgcGFyYW1ldGVyRGVzY3JpcHRvcnMoKSB7CiAgICByZXR1cm4gW3sgbmFtZTogJ2NydXNoJywgZGVmYXVsdFZhbHVlOiAwIH1dOwogIH0KCiAgY29uc3RydWN0b3IoKSB7CiAgICBzdXBlcigpOwogICAgdGhpcy5ub3RTdGFydGVkID0gdHJ1ZTsKICB9CgogIHByb2Nlc3MoaW5wdXRzLCBvdXRwdXRzLCBwYXJhbWV0ZXJzKSB7CiAgICBjb25zdCBpbnB1dCA9IGlucHV0c1swXTsKICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbMF07CiAgICBjb25zdCBjcnVzaCA9IHBhcmFtZXRlcnMuY3J1c2g7CiAgICBjb25zdCBibG9ja1NpemUgPSAxMjg7CiAgICBjb25zdCBoYXNJbnB1dCA9ICEoaW5wdXRbMF0gPT09IHVuZGVmaW5lZCk7CiAgICBpZiAoaGFzSW5wdXQpIHsKICAgICAgdGhpcy5ub3RTdGFydGVkID0gZmFsc2U7CiAgICAgIGlmIChjcnVzaC5sZW5ndGggPT09IDEpIHsKICAgICAgICBjb25zdCB4ID0gTWF0aC5wb3coMiwgY3J1c2hbMF0gLSAxKTsKICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGJsb2NrU2l6ZTsgbisrKSB7CiAgICAgICAgICBjb25zdCB2YWx1ZSA9IE1hdGgucm91bmQoaW5wdXRbMF1bbl0gKiB4KSAvIHg7CiAgICAgICAgICBmb3IgKGxldCBvID0gMDsgbyA8IG91dHB1dC5sZW5ndGg7IG8rKykgewogICAgICAgICAgICBvdXRwdXRbb11bbl0gPSB2YWx1ZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZm9yIChsZXQgbiA9IDA7IG4gPCBibG9ja1NpemU7IG4rKykgewogICAgICAgICAgbGV0IHggPSBNYXRoLnBvdygyLCBjcnVzaFtuXSAtIDEpOwogICAgICAgICAgY29uc3QgdmFsdWUgPSBNYXRoLnJvdW5kKGlucHV0WzBdW25dICogeCkgLyB4OwogICAgICAgICAgZm9yIChsZXQgbyA9IDA7IG8gPCBvdXRwdXQubGVuZ3RoOyBvKyspIHsKICAgICAgICAgICAgb3V0cHV0W29dW25dID0gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQpyZWdpc3RlclByb2Nlc3NvcignY3J1c2gtcHJvY2Vzc29yJywgQ3J1c2hQcm9jZXNzb3IpOwoKY2xhc3MgU2hhcGVQcm9jZXNzb3IgZXh0ZW5kcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgewogIHN0YXRpYyBnZXQgcGFyYW1ldGVyRGVzY3JpcHRvcnMoKSB7CiAgICByZXR1cm4gW3sgbmFtZTogJ3NoYXBlJywgZGVmYXVsdFZhbHVlOiAwIH1dOwogIH0KCiAgY29uc3RydWN0b3IoKSB7CiAgICBzdXBlcigpOwogICAgdGhpcy5ub3RTdGFydGVkID0gdHJ1ZTsKICB9CgogIHByb2Nlc3MoaW5wdXRzLCBvdXRwdXRzLCBwYXJhbWV0ZXJzKSB7CiAgICBjb25zdCBpbnB1dCA9IGlucHV0c1swXTsKICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbMF07CiAgICBjb25zdCBzaGFwZTAgPSBwYXJhbWV0ZXJzLnNoYXBlWzBdOwogICAgY29uc3Qgc2hhcGUxID0gc2hhcGUwIDwgMSA/IHNoYXBlMCA6IDEuMCAtIDRlLTEwOwogICAgY29uc3Qgc2hhcGUgPSAoMi4wICogc2hhcGUxKSAvICgxLjAgLSBzaGFwZTEpOwogICAgY29uc3QgYmxvY2tTaXplID0gMTI4OwogICAgY29uc3QgaGFzSW5wdXQgPSAhKGlucHV0WzBdID09PSB1bmRlZmluZWQpOwogICAgaWYgKGhhc0lucHV0KSB7CiAgICAgIHRoaXMubm90U3RhcnRlZCA9IGZhbHNlOwogICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGJsb2NrU2l6ZTsgbisrKSB7CiAgICAgICAgY29uc3QgdmFsdWUgPSAoKDEgKyBzaGFwZSkgKiBpbnB1dFswXVtuXSkgLyAoMSArIHNoYXBlICogTWF0aC5hYnMoaW5wdXRbMF1bbl0pKTsKICAgICAgICBmb3IgKGxldCBvID0gMDsgbyA8IG91dHB1dC5sZW5ndGg7IG8rKykgewogICAgICAgICAgb3V0cHV0W29dW25dID0gdmFsdWU7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQoKcmVnaXN0ZXJQcm9jZXNzb3IoJ3NoYXBlLXByb2Nlc3NvcicsIFNoYXBlUHJvY2Vzc29yKTsK",{Pattern:Pattern$1}=strudel;let audioContext;const getAudioContext$1=()=>(audioContext||(audioContext=new AudioContext),audioContext);let destination;const getDestination=()=>{const s=getAudioContext$1();return destination||(destination=s.createGain(),destination.connect(s.destination)),destination},panic=()=>{getDestination().gain.linearRampToValueAtTime(0,getAudioContext$1().currentTime+.01),destination=null},getFilter=(s,e,r)=>{const u=getAudioContext$1().createBiquadFilter();return u.type=s,u.frequency.value=e,u.Q.value=r,u},getADSR=(s,e,r,u,i,n,a)=>{const l=getAudioContext$1().createGain();return l.gain.setValueAtTime(0,n),l.gain.linearRampToValueAtTime(i,n+s),l.gain.linearRampToValueAtTime(r*i,n+s+e),l.gain.setValueAtTime(r*i,a),l.gain.linearRampToValueAtTime(0,a+u),l},getOscillator=({s,freq:e,t:r,duration:u,release:i})=>{const n=getAudioContext$1().createOscillator();return n.type=s||"triangle",n.frequency.value=Number(e),n.start(r),n.stop(r+u+i),n},getSoundfontKey=s=>{var u,i,n,a;if(!globalThis.soundfontList)return!1;if((i=(u=globalThis.soundfontList)==null?void 0:u.instruments)!=null&&i.includes(s))return s;const e=(a=(n=globalThis.soundfontList)==null?void 0:n.instrumentNames)==null?void 0:a.indexOf(s),r=e<10?`00${e}`:e<100?`0${e}`:e;if(e!==-1)return globalThis.soundfontList.instruments.find(l=>l.startsWith(r))},getSampleBufferSource=async(s,e,r,u)=>{let i=0,n=typeof r=="string"?toMidi(r):r||36;i=n-36;const a=getAudioContext$1(),l=getLoadedSamples();if(!l)throw new Error("no samples loaded");const o=l==null?void 0:l[s];if(!o)throw new Error(`sample not found: "${s}", try one of ${Object.keys(l).map(f=>`"${f}"`).join(", ")}.`);if(typeof o!="object")throw new Error("wrong format for sample bank:",s);let c;if(Array.isArray(o))c=o[e%o.length];else{const f=D=>toMidi(D)-n,E=Object.keys(o).filter(D=>!D.startsWith("_")).reduce((D,h,y)=>!D||Math.abs(f(h)){if(!s.includes(":"))return[s,e];let[r,u]=s.split(":");return isNaN(Number(u))?[s,e]:[r,u]};let workletsLoading;function loadWorklets(){return workletsLoading||(workletsLoading=getAudioContext$1().audioWorklet.addModule(workletsUrl),workletsLoading)}function getWorklet(s,e,r){const u=new AudioWorkletNode(s,e);return Object.entries(r).forEach(([i,n])=>{u.parameters.get(i).value=n}),u}if(typeof window<"u")try{loadWorklets()}catch(s){console.warn("could not load AudioWorklet effects coarse, crush and shape",s)}function gainNode(s){const e=getAudioContext$1().createGain();return e.gain.value=s,e}const cutGroups=[];let delays={};function getDelay(s,e,r,u){if(!delays[s]){const n=getAudioContext$1().createFeedbackDelay(1,e,r);n.start(u),n.connect(getDestination()),delays[s]=n}return delays[s].delayTime.value!==e&&delays[s].delayTime.setValueAtTime(e,u),delays[s].feedback.value!==r&&delays[s].feedback.setValueAtTime(r,u),delays[s]}let reverbs={};function getReverb(s,e=2){if(!reverbs[s]){const u=getAudioContext$1().createReverb(e);u.connect(getDestination()),reverbs[s]=u}return reverbs[s].duration!==e&&(reverbs[s]=reverbs[s].setDuration(e),reverbs[s].duration=e),reverbs[s]}function effectSend(s,e,r){const u=gainNode(r);return s.connect(u),u.connect(e),u}const webaudioOutput=async(s,e,r)=>{var u;try{const i=getAudioContext$1();if(typeof s.value!="object")throw new Error(`hap.value ${s.value} is not supported by webaudio output. Hint: append .note() or .s() to the end`);let n=i.currentTime+e,{freq:a,s:l,bank:o,sf:c,clip:A=0,n:d=0,note:m,gain:f=.8,cutoff:E,resonance:D=1,hcutoff:h,hresonance:y=1,bandf:_,bandq:b=1,coarse:P,crush:B,shape:g,pan:x,speed:C=1,begin:S=0,end:L=1,vowel:$,delay:N=0,delayfeedback:R=.5,delaytime:O=.25,unit:U,nudge:G=0,cut:k,loop:M,orbit:H=1,room:Y,size:ae=2,roomsize:ee=ae}=s.value;const{velocity:te=1}=s.context;f*=te;const v=[];if(o&&l&&(l=`${o}_${l}`),typeof l=="string"&&([l,d]=splitSN(l,d)),typeof m=="string"&&([m,d]=splitSN(m,d)),!l||["sine","square","triangle","sawtooth"].includes(l)){const{attack:q=.001,decay:K=.05,sustain:le=.6,release:ue=.01}=s.value;d=m||d||36,typeof d=="string"&&(d=toMidi(d)),!a&&typeof d=="number"&&(a=fromMidi(d));const se=getOscillator({t:n,s:l,freq:a,duration:r,release:ue});v.push(se),v.push(gainNode(.3));const W=getADSR(q,K,le,ue,1,n,n+r);v.push(W)}else{const{attack:q=.001,decay:K=.001,sustain:le=1,release:ue=.001}=s.value;if(C===0)return;if(!l){console.warn("no sample specified");return}const se=getSoundfontKey(l);let W;try{se?W=await globalThis.getFontBufferSource(se,m||d,i):W=await getSampleBufferSource(l,d,m,C)}catch(Ae){console.warn(Ae);return}if(i.currentTime>n){console.warn("sample still loading:",l,d);return}if(!W){console.warn("no buffer source");return}W.playbackRate.value=Math.abs(C)*W.playbackRate.value,U==="c"&&(W.playbackRate.value=W.playbackRate.value*W.buffer.duration);let z=se||A?r:W.buffer.duration/W.playbackRate.value;const ce=S*z*W.playbackRate.value;z=(L-S)*z,M&&(W.loop=!0,W.loopStart=ce,W.loopEnd=ce+z,z=M*z),n+=G,W.start(n,ce),k!==void 0&&((u=cutGroups[k])==null||u.stop(n),cutGroups[k]=W),v.push(W),W.stop(n+z+ue);const De=getADSR(q,K,le,ue,1,n,n+z);v.push(De)}if(v.push(gainNode(f)),E!==void 0&&v.push(getFilter("lowpass",E,D)),h!==void 0&&v.push(getFilter("highpass",h,y)),_!==void 0&&v.push(getFilter("bandpass",_,b)),$!==void 0&&v.push(i.createVowelFilter($)),P!==void 0&&v.push(getWorklet(i,"coarse-processor",{coarse:P})),B!==void 0&&v.push(getWorklet(i,"crush-processor",{crush:B})),g!==void 0&&v.push(getWorklet(i,"shape-processor",{shape:g})),x!==void 0){const q=i.createStereoPanner();q.pan.value=2*x-1,v.push(q)}const X=gainNode(1);v.push(X),X.connect(getDestination());let re;if(N>0&&O>0&&R>0){const q=getDelay(H,O,R,n);re=effectSend(X,q,N)}let Ee;if(Y>0&&ee>0){const q=getReverb(H,ee);Ee=effectSend(X,q,Y)}v.slice(1).reduce((q,K)=>q.connect(K),v[0]),v[0].onended=()=>v.concat([re,Ee]).forEach(q=>q==null?void 0:q.disconnect())}catch(i){console.warn(".out error:",i)}},webaudioOutputTrigger=(s,e,r,u)=>webaudioOutput(e,s-r,e.duration/u);Pattern$1.prototype.out=function(){return this.onTrigger(webaudioOutputTrigger)};var errors={ErrorMessages:{UNEXPECTED_TOKEN(s){return`Unexpected token ${JSON.stringify(s)}`},UNEXPECTED_ILLEGAL_TOKEN(s){return`Unexpected ${JSON.stringify(s)}`},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(s){return`The identifier ${JSON.stringify(s)} must not be in binding position in strict mode`},INVALID_ID_IN_LABEL_STRICT_MODE(s){return`The identifier ${JSON.stringify(s)} must not be in label position in strict mode`},INVALID_ID_IN_EXPRESSION_STRICT_MODE(s){return`The identifier ${JSON.stringify(s)} 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(s){return`Duplicate binding ${JSON.stringify(s)}`},ILLEGAL_ID_IN_LEXICAL_DECLARATION(s){return`Lexical declarations must not have a binding named ${JSON.stringify(s)}`},UNITIALIZED_CONST:"Constant lexical declarations must have an initialiser",ILLEGAL_LABEL_IN_BODY(s){return`The body of a ${s} 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(s){return`Continue statement must be nested within an iteration statement with label ${JSON.stringify(s)}`},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(s){return`Label ${JSON.stringify(s)} has already been declared`},ILLEGAL_BREAK_WITHIN_LABEL(s){return`Break statement must be nested within a statement with label ${JSON.stringify(s)}`},ILLEGAL_YIELD_EXPRESSIONS(s){return`${s} 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(s){return`Duplicate export ${JSON.stringify(s)}`},UNDECLARED_BINDING(s){return`Exported binding ${JSON.stringify(s)} 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"'}},mappings=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"]])]]);const propertyToValueAliases=mappings,matchPropertyValue$1=function(s,e){const r=propertyToValueAliases.get(s);if(!r)throw new Error(`Unknown property \`${s}\`.`);const u=r.get(e);if(u)return u;throw new Error(`Unknown value \`${e}\` for property \`${s}\`.`)};var unicodeMatchPropertyValueEcmascript=matchPropertyValue$1,unicodeCanonicalPropertyNamesEcmascript=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"]),unicodePropertyAliasesEcmascript=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"]]);const canonicalProperties=unicodeCanonicalPropertyNamesEcmascript,propertyAliases$1=unicodePropertyAliasesEcmascript,matchProperty$1=function(s){if(canonicalProperties.has(s))return s;if(propertyAliases$1.has(s))return propertyAliases$1.get(s);throw new Error(`Unknown property: ${s}`)};var unicodeMatchPropertyEcmascript=matchProperty$1,unicode$2={};unicode$2.whitespaceArray=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279];unicode$2.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];unicode$2.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]$/;unicode$2.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];unicode$2.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]$/;unicode$2.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];const matchPropertyValue=unicodeMatchPropertyValueEcmascript,matchPropertyValueMappings=mappings,matchProperty=unicodeMatchPropertyEcmascript,propertyAliases=unicodePropertyAliasesEcmascript,{idContinueBool:idContinueBool$3,idContinueLargeRegex:idContinueLargeRegex$3,idStartBool:idStartBool$2,idStartLargeRegex:idStartLargeRegex$2}=unicode$2,catchIsFalse=s=>{try{return!!s()}catch{return!1}},syntaxCharacters="^$\\.*+?()[]{}|".split(""),extendedSyntaxCharacters="^$\\.*+?()[|".split(""),controlEscapeCharacters="fnrtv".split(""),controlEscapeCharacterValues={f:"\f".charCodeAt(0),n:` +`.charCodeAt(0),r:"\r".charCodeAt(0),t:" ".charCodeAt(0),v:"\v".charCodeAt(0)},controlCharacters="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),hexDigits="0123456789abcdefABCDEF".split(""),decimalDigits="0123456789".split(""),octalDigits="01234567".split(""),INVALID_NAMED_BACKREFERENCE_SENTINEL={};function isIdentifierStart$1(s){return s<128?idStartBool$2[s]:idStartLargeRegex$2.test(String.fromCodePoint(s))}function isIdentifierPart$1(s){return s<128?idContinueBool$3[s]:idContinueLargeRegex$3.test(String.fromCodePoint(s))}class PatternAcceptorState{constructor(e,r){this.pattern=e,this.unicode=r,this.index=0,this.largestBackreference=0,this.backreferenceNames=[],this.groupingNames=[],this.capturingGroups=0}empty(){return this.index>=this.pattern.length}backreference(e){e>this.largestBackreference&&(this.largestBackreference=e)}nextCodePoint(){return this.empty()?null:this.unicode?String.fromCodePoint(this.pattern.codePointAt(this.index)):this.pattern.charAt(this.index)}skipCodePoint(){this.index+=this.nextCodePoint().length}eat(e){return this.index+e.length>this.pattern.length||this.pattern.slice(this.index,this.index+e.length)!==e?!1:(this.index+=e.length,!0)}eatIdentifierCodePoint(){let e,r=this.index,u;if(this.match("\\u")){if(this.skipCodePoint(),e=acceptUnicodeEscape(this),!e.matched)return this.index=r,null;e=e.value,u=String.fromCodePoint(e)}else{if(u=this.nextCodePoint(),u==null)return this.index=r,null;this.index+=u.length,e=u.codePointAt(0)}return{character:u,characterValue:e}}eatIdentifierStart(){let e=this.index,r=this.eatIdentifierCodePoint();return r===null?(this.index=e,null):r.character==="_"||r.character==="$"||isIdentifierStart$1(r.characterValue)?r.character:(this.index=e,null)}eatIdentifierPart(){let e=this.index,r=this.eatIdentifierCodePoint();return r===null?(this.index=e,null):r.character==="\u200C"||r.character==="\u200D"||r.character==="$"||isIdentifierPart$1(r.characterValue)?r.character:(this.index=e,null)}eatAny(...e){for(let r of e)if(this.eat(r))return r;return null}match(e){return this.index+e.length<=this.pattern.length&&this.pattern.slice(this.index,this.index+e.length)===e}matchAny(...e){for(let r of e)if(this.match(r))return!0;return!1}eatNaturalNumber(){let e=[],r=()=>{for(let u of decimalDigits)if(this.eat(u))return e.push(u),!0;return!1};for(;r(););return e.length===0?null:e.join("")}}var src$3=(s,{unicode:e=!1}={})=>{let r=new PatternAcceptorState(s,e),u=acceptDisjunction(r);if(u.matched){if(r.unicode&&r.largestBackreference>r.capturingGroups)return!1;if(r.groupingNames.length>0||r.unicode){for(let i of r.backreferenceNames)if(r.groupingNames.indexOf(i)===-1)return!1}}return u.matched};const backtrackOnFailure=s=>e=>{let r=e.index,u=e.largestBackreference,i=e.capturingGroups,n=s(e);return n.matched||(e.index=r,e.largestBackreference=u,e.capturingGroups=i),n},acceptUnicodeEscape=backtrackOnFailure(s=>{if(!s.eat("u"))return{matched:!1};if(s.unicode&&s.eat("{")){let u=[];for(;!s.eat("}");){let n=s.eatAny(...hexDigits);if(n===null)return{matched:!1};u.push(n)}let i=parseInt(u.join(""),16);return i>1114111?{matched:!1}:{matched:!0,value:i}}let e=[0,0,0,0].map(()=>s.eatAny(...hexDigits));if(e.some(u=>u===null))return{matched:!1};let r=parseInt(e.join(""),16);if(s.unicode&&r>=55296&&r<=56319){let u=backtrackOnFailure(i=>{if(!i.eat("\\u"))return{matched:!1};let n=[0,0,0,0].map(()=>i.eatAny(...hexDigits));if(n.some(l=>l===null))return{matched:!1};let a=parseInt(n.join(""),16);return a<56320||a>=57344?{matched:!1}:{matched:!0,value:65536+((r&1023)<<10)+(a&1023)}})(s);if(u.matched)return u}return{matched:!0,value:r}}),acceptDisjunction=(s,e)=>{do{if(e!==void 0&&s.eat(e))return{matched:!0};if(s.match("|"))continue;if(!acceptAlternative(s,e).matched)return{matched:!1}}while(s.eat("|"));return{matched:e===void 0||!!s.eat(e)}},acceptAlternative=(s,e)=>{for(;!s.match("|")&&!s.empty()&&(e===void 0||!s.match(e));)if(!acceptTerm(s).matched)return{matched:!1};return{matched:!0}},anyOf=(...s)=>e=>{for(let r of s){let u=r(e);if(u.matched)return u}return{matched:!1}},acceptTerm=s=>s.unicode?anyOf(acceptAssertion,acceptQuantified(acceptAtom))(s):anyOf(acceptQuantified(acceptQuantifiableAssertion),acceptAssertion,acceptQuantified(acceptAtom))(s),acceptLabeledGroup=s=>backtrackOnFailure(e=>e.eat("(")?s(e)?acceptDisjunction(e,")"):{matched:!1}:{matched:!1}),acceptQuantifiableAssertion=acceptLabeledGroup(s=>!!s.eatAny("?=","?!")),acceptAssertion=s=>s.eatAny("^","$","\\b","\\B")?{matched:!0}:acceptLabeledGroup(e=>e.unicode?!!e.eatAny("?=","?!","?<=","?({matched:s.eatNaturalNumber()!==null}),acceptQuantified=s=>backtrackOnFailure(e=>{if(!s(e).matched)return{matched:!1};if(e.match("{")){let r=backtrackOnFailure(u=>{u.eat("{");let i=u.eatNaturalNumber();if(i===null)return{matched:!1};if(u.eat(",")&&u.matchAny(...decimalDigits)){let n=u.eatNaturalNumber();if(n===null||parseInt(i)>parseInt(n))return{matched:!1}}return u.eat("}")?(u.eat("?"),{matched:!0}):{matched:!1}})(e);return r.matched?r:{matched:!e.unicode}}else e.eatAny("*","+","?")&&e.eat("?");return{matched:!0}}),acceptCharacterExcept=s=>e=>{let r=e.nextCodePoint();return r===null||s.indexOf(r)!==-1?{matched:!1}:(e.skipCodePoint(),{matched:!0})},acceptPatternCharacter=acceptCharacterExcept(syntaxCharacters),acceptExtendedPatternCharacter=acceptCharacterExcept(extendedSyntaxCharacters),acceptInvalidBracedQuantifier=s=>backtrackOnFailure(e=>({matched:!!(e.eat("{")&&acceptDecimal(e).matched&&(!e.eat(",")||e.match("}")||acceptDecimal(e).matched)&&e.eat("}"))}))(s),acceptAtom=s=>{if(s.unicode)return anyOf(acceptPatternCharacter,r=>({matched:!!r.eat(".")}),backtrackOnFailure(r=>r.eat("\\")?acceptAtomEscape(r):{matched:!1}),acceptCharacterClass,acceptLabeledGroup(r=>r.eat("?:")),acceptGrouping)(s);let e=anyOf(r=>({matched:!!r.eat(".")}),backtrackOnFailure(r=>r.eat("\\")?acceptAtomEscape(r):{matched:!1}),backtrackOnFailure(r=>({matched:r.eat("\\")&&r.match("c")})),acceptCharacterClass,acceptLabeledGroup(r=>r.eat("?:")),acceptGrouping)(s);return!e.matched&&acceptInvalidBracedQuantifier(s).matched?{matched:!1}:e.matched?e:acceptExtendedPatternCharacter(s)},acceptGrouping=backtrackOnFailure(s=>{if(!s.eat("("))return{matched:!1};let e=backtrackOnFailure(r=>s.eat("?")?acceptGroupName(r):{matched:!1})(s);if(!acceptDisjunction(s,")").matched)return{matched:!1};if(e.matched){if(s.groupingNames.indexOf(e.data)!==-1)return{matched:!1};s.groupingNames.push(e.data)}return s.capturingGroups++,{matched:!0}}),acceptDecimalEscape=backtrackOnFailure(s=>{let e=s.eatAny(...decimalDigits);return e===null?{matched:!1}:e==="0"?{matched:!0}:(s.backreference(parseInt(e+(s.eatNaturalNumber()||""))),{matched:!0})}),acceptCharacterClassEscape=s=>s.eatAny("d","D","s","S","w","W")?{matched:!0}:s.unicode?backtrackOnFailure(e=>!e.eat("p{")&&!e.eat("P{")?{matched:!1}:acceptUnicodePropertyValueExpression(e).matched?{matched:!!e.eat("}")}:{matched:!1})(s):{matched:!1},acceptUnicodePropertyName=s=>{let e=[],r;for(;r=s.eatAny(...controlCharacters,"_");)e.push(r);return{matched:e.length>0,data:e.join("")}},acceptUnicodePropertyValue=s=>{let e=[],r;for(;r=s.eatAny(...controlCharacters,...decimalDigits,"_");)e.push(r);return{matched:e.length>0,data:e.join("")}},illegalLoneUnicodePropertyNames=["General_Category","Script","Script_Extensions","scx","sc","gc"],generalCategoryValues=matchPropertyValueMappings.get("General_Category"),acceptLoneUnicodePropertyNameOrValue=s=>{let e=acceptUnicodePropertyValue(s);return!e.matched||illegalLoneUnicodePropertyNames.includes(e.data)?{matched:!1}:{matched:catchIsFalse(()=>matchProperty(e.data))||generalCategoryValues.get(e.data)!=null}},acceptUnicodePropertyValueExpression=s=>anyOf(backtrackOnFailure(e=>{let r=acceptUnicodePropertyName(e);if(!r.matched||!e.eat("="))return{matched:!1};let u=acceptUnicodePropertyValue(e);return u.matched?{matched:catchIsFalse(()=>matchPropertyValue(propertyAliases.get(r.data)||r.data,u.data))}:{matched:!1}}),backtrackOnFailure(acceptLoneUnicodePropertyNameOrValue))(s),acceptCharacterEscape=anyOf(s=>{let e=s.eatAny(...controlEscapeCharacters);return e===null?{matched:!1}:{matched:!0,value:controlEscapeCharacterValues[e]}},backtrackOnFailure(s=>{if(!s.eat("c"))return{matched:!1};let e=s.eatAny(...controlCharacters);return e===null?{matched:!1}:{matched:!0,value:e.charCodeAt(0)%32}}),backtrackOnFailure(s=>!s.eat("0")||s.eatAny(...decimalDigits)?{matched:!1}:{matched:!0,value:0}),backtrackOnFailure(s=>{if(!s.eat("x"))return{matched:!1};let e=[0,0].map(()=>s.eatAny(...hexDigits));return e.some(r=>r===null)?{matched:!1}:{matched:!0,value:parseInt(e.join(""),16)}}),acceptUnicodeEscape,backtrackOnFailure(s=>{if(s.unicode)return{matched:!1};let e=s.eatAny(...octalDigits);if(e===null)return{matched:!1};let r=parseInt(e,8);if(octalDigits.indexOf(s.nextCodePoint())===-1)return{matched:!0,value:r};let u=s.eatAny(...octalDigits),i=parseInt(u,8);if(r<4){if(octalDigits.indexOf(s.nextCodePoint())===-1)return{matched:!0,value:r<<3|i};let n=s.eatAny(...octalDigits),a=parseInt(n,8);return{matched:!0,value:r<<6|i<<3|a}}return{matched:!0,value:r<<3|i}}),backtrackOnFailure(s=>{if(!s.unicode)return{matched:!1};let e=s.eatAny(...syntaxCharacters);return e===null?{matched:!1}:{matched:!0,value:e.charCodeAt(0)}}),s=>!s.unicode||!s.eat("/")?{matched:!1}:{matched:!0,value:"/".charCodeAt(0)},backtrackOnFailure(s=>{if(s.unicode)return{matched:!1};let e=s.nextCodePoint();return e!==null&&e!=="c"&&e!=="k"?(s.skipCodePoint(),{matched:!0,value:e.codePointAt(0)}):{matched:!1}})),acceptGroupNameBackreference=backtrackOnFailure(s=>{if(!s.eat("k"))return{matched:!1};let e=acceptGroupName(s);return e.matched?(s.backreferenceNames.push(e.data),{matched:!0}):(s.backreferenceNames.push(INVALID_NAMED_BACKREFERENCE_SENTINEL),{matched:!0})}),acceptGroupName=backtrackOnFailure(s=>{if(!s.eat("<"))return{matched:!1};let e=[],r=s.eatIdentifierStart();if(!r)return{matched:!1};e.push(r);let u;for(;u=s.eatIdentifierPart();)e.push(u);return s.eat(">")?{matched:e.length>0,data:e.join("")}:{matched:!1}}),acceptAtomEscape=anyOf(acceptDecimalEscape,acceptCharacterClassEscape,acceptCharacterEscape,acceptGroupNameBackreference),acceptCharacterClass=backtrackOnFailure(s=>{if(!s.eat("["))return{matched:!1};s.eat("^");const e=anyOf(o=>({matched:!!o.eat("b"),value:8}),o=>({matched:o.unicode&&!!o.eat("-"),value:"-".charCodeAt(0)}),backtrackOnFailure(o=>{if(o.unicode||!o.eat("c"))return{matched:!1};let c=o.eatAny(...decimalDigits,"_");return c===null?{matched:!1}:{matched:!0,value:c.charCodeAt(0)%32}}),acceptCharacterClassEscape,acceptCharacterEscape,o=>({matched:!o.unicode&&!!o.eat("k"),value:107})),r=o=>{let c=o.nextCodePoint();if(c==="]"||c==="-"||c===null)return{matched:!1};if(c!=="\\")return o.skipCodePoint(),{matched:!0,value:c.codePointAt(0)};o.eat("\\");let A=e(o);return!A.matched&&o.nextCodePoint()==="c"&&!o.unicode?{matched:!0,value:"\\".charCodeAt(0)}:A},u=o=>o.eat("-")?{matched:!0,value:"-".charCodeAt(0)}:r(o),i=(o,c)=>{const A=d=>d.value===void 0&&d.matched;if(o.eat("-")){if(o.match("]"))return{matched:!0};let d=u(o);return d.matched?o.unicode&&(A(c)||A(d))?{matched:!1}:!(!o.unicode&&(A(c)||A(d)))&&c.value>d.value?{matched:!1}:o.match("]")?{matched:!0}:n(o):{matched:!1}}return o.match("]")?{matched:!0}:a(o)},n=o=>{let c=u(o);return c.matched?i(o,c):{matched:!1}},a=o=>{let c=r(o);return c.matched?i(o,c):{matched:!1}};if(s.eat("]"))return{matched:!0};let l=n(s);return l.matched&&s.eat("]"),l});var utils$1={},unicode$1={};unicode$1.whitespaceArray=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279];unicode$1.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];unicode$1.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]$/;unicode$1.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];unicode$1.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]$/;unicode$1.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];const{whitespaceArray:whitespaceArray$1,whitespaceBool:whitespaceBool$1,idStartLargeRegex:idStartLargeRegex$1,idStartBool:idStartBool$1,idContinueLargeRegex:idContinueLargeRegex$2,idContinueBool:idContinueBool$2}=unicode$1,strictReservedWords=["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"];utils$1.isStrictModeReservedWord=s=>strictReservedWords.indexOf(s)!==-1;utils$1.isWhiteSpace=s=>s<128?whitespaceBool$1[s]:s===160||s>5759&&whitespaceArray$1.indexOf(s)!==-1;utils$1.isLineTerminator=s=>s===10||s===13||s===8232||s===8233;utils$1.isIdentifierStart=s=>s<128?idStartBool$1[s]:idStartLargeRegex$1.test(String.fromCodePoint(s));utils$1.isIdentifierPart=s=>s<128?idContinueBool$2[s]:idContinueLargeRegex$2.test(String.fromCodePoint(s));utils$1.isDecimalDigit=s=>s>=48&&s<=57;utils$1.getHexValue=s=>s>="0"&&s<="9"?s.charCodeAt(0)-48:s>="a"&&s<="f"?s.charCodeAt(0)-87:s>="A"&&s<="F"?s.charCodeAt(0)-55:-1;const{getHexValue,isLineTerminator:isLineTerminator$1,isWhiteSpace,isIdentifierStart,isIdentifierPart,isDecimalDigit}=utils$1,{ErrorMessages:ErrorMessages$2}=errors,TokenClass$2={Eof:{name:""},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"}},TokenType$2={EOS:{klass:TokenClass$2.Eof,name:"EOS"},LPAREN:{klass:TokenClass$2.Punctuator,name:"("},RPAREN:{klass:TokenClass$2.Punctuator,name:")"},LBRACK:{klass:TokenClass$2.Punctuator,name:"["},RBRACK:{klass:TokenClass$2.Punctuator,name:"]"},LBRACE:{klass:TokenClass$2.Punctuator,name:"{"},RBRACE:{klass:TokenClass$2.Punctuator,name:"}"},COLON:{klass:TokenClass$2.Punctuator,name:":"},SEMICOLON:{klass:TokenClass$2.Punctuator,name:";"},PERIOD:{klass:TokenClass$2.Punctuator,name:"."},ELLIPSIS:{klass:TokenClass$2.Punctuator,name:"..."},ARROW:{klass:TokenClass$2.Punctuator,name:"=>"},CONDITIONAL:{klass:TokenClass$2.Punctuator,name:"?"},INC:{klass:TokenClass$2.Punctuator,name:"++"},DEC:{klass:TokenClass$2.Punctuator,name:"--"},ASSIGN:{klass:TokenClass$2.Punctuator,name:"="},ASSIGN_BIT_OR:{klass:TokenClass$2.Punctuator,name:"|="},ASSIGN_BIT_XOR:{klass:TokenClass$2.Punctuator,name:"^="},ASSIGN_BIT_AND:{klass:TokenClass$2.Punctuator,name:"&="},ASSIGN_SHL:{klass:TokenClass$2.Punctuator,name:"<<="},ASSIGN_SHR:{klass:TokenClass$2.Punctuator,name:">>="},ASSIGN_SHR_UNSIGNED:{klass:TokenClass$2.Punctuator,name:">>>="},ASSIGN_ADD:{klass:TokenClass$2.Punctuator,name:"+="},ASSIGN_SUB:{klass:TokenClass$2.Punctuator,name:"-="},ASSIGN_MUL:{klass:TokenClass$2.Punctuator,name:"*="},ASSIGN_DIV:{klass:TokenClass$2.Punctuator,name:"/="},ASSIGN_MOD:{klass:TokenClass$2.Punctuator,name:"%="},ASSIGN_EXP:{klass:TokenClass$2.Punctuator,name:"**="},COMMA:{klass:TokenClass$2.Punctuator,name:","},OR:{klass:TokenClass$2.Punctuator,name:"||"},AND:{klass:TokenClass$2.Punctuator,name:"&&"},BIT_OR:{klass:TokenClass$2.Punctuator,name:"|"},BIT_XOR:{klass:TokenClass$2.Punctuator,name:"^"},BIT_AND:{klass:TokenClass$2.Punctuator,name:"&"},SHL:{klass:TokenClass$2.Punctuator,name:"<<"},SHR:{klass:TokenClass$2.Punctuator,name:">>"},SHR_UNSIGNED:{klass:TokenClass$2.Punctuator,name:">>>"},ADD:{klass:TokenClass$2.Punctuator,name:"+"},SUB:{klass:TokenClass$2.Punctuator,name:"-"},MUL:{klass:TokenClass$2.Punctuator,name:"*"},DIV:{klass:TokenClass$2.Punctuator,name:"/"},MOD:{klass:TokenClass$2.Punctuator,name:"%"},EXP:{klass:TokenClass$2.Punctuator,name:"**"},EQ:{klass:TokenClass$2.Punctuator,name:"=="},NE:{klass:TokenClass$2.Punctuator,name:"!="},EQ_STRICT:{klass:TokenClass$2.Punctuator,name:"==="},NE_STRICT:{klass:TokenClass$2.Punctuator,name:"!=="},LT:{klass:TokenClass$2.Punctuator,name:"<"},GT:{klass:TokenClass$2.Punctuator,name:">"},LTE:{klass:TokenClass$2.Punctuator,name:"<="},GTE:{klass:TokenClass$2.Punctuator,name:">="},INSTANCEOF:{klass:TokenClass$2.Keyword,name:"instanceof"},IN:{klass:TokenClass$2.Keyword,name:"in"},NOT:{klass:TokenClass$2.Punctuator,name:"!"},BIT_NOT:{klass:TokenClass$2.Punctuator,name:"~"},ASYNC:{klass:TokenClass$2.Keyword,name:"async"},AWAIT:{klass:TokenClass$2.Keyword,name:"await"},ENUM:{klass:TokenClass$2.Keyword,name:"enum"},DELETE:{klass:TokenClass$2.Keyword,name:"delete"},TYPEOF:{klass:TokenClass$2.Keyword,name:"typeof"},VOID:{klass:TokenClass$2.Keyword,name:"void"},BREAK:{klass:TokenClass$2.Keyword,name:"break"},CASE:{klass:TokenClass$2.Keyword,name:"case"},CATCH:{klass:TokenClass$2.Keyword,name:"catch"},CLASS:{klass:TokenClass$2.Keyword,name:"class"},CONTINUE:{klass:TokenClass$2.Keyword,name:"continue"},DEBUGGER:{klass:TokenClass$2.Keyword,name:"debugger"},DEFAULT:{klass:TokenClass$2.Keyword,name:"default"},DO:{klass:TokenClass$2.Keyword,name:"do"},ELSE:{klass:TokenClass$2.Keyword,name:"else"},EXPORT:{klass:TokenClass$2.Keyword,name:"export"},EXTENDS:{klass:TokenClass$2.Keyword,name:"extends"},FINALLY:{klass:TokenClass$2.Keyword,name:"finally"},FOR:{klass:TokenClass$2.Keyword,name:"for"},FUNCTION:{klass:TokenClass$2.Keyword,name:"function"},IF:{klass:TokenClass$2.Keyword,name:"if"},IMPORT:{klass:TokenClass$2.Keyword,name:"import"},LET:{klass:TokenClass$2.Keyword,name:"let"},NEW:{klass:TokenClass$2.Keyword,name:"new"},RETURN:{klass:TokenClass$2.Keyword,name:"return"},SUPER:{klass:TokenClass$2.Keyword,name:"super"},SWITCH:{klass:TokenClass$2.Keyword,name:"switch"},THIS:{klass:TokenClass$2.Keyword,name:"this"},THROW:{klass:TokenClass$2.Keyword,name:"throw"},TRY:{klass:TokenClass$2.Keyword,name:"try"},VAR:{klass:TokenClass$2.Keyword,name:"var"},WHILE:{klass:TokenClass$2.Keyword,name:"while"},WITH:{klass:TokenClass$2.Keyword,name:"with"},NULL:{klass:TokenClass$2.Keyword,name:"null"},TRUE:{klass:TokenClass$2.Keyword,name:"true"},FALSE:{klass:TokenClass$2.Keyword,name:"false"},YIELD:{klass:TokenClass$2.Keyword,name:"yield"},NUMBER:{klass:TokenClass$2.NumericLiteral,name:""},STRING:{klass:TokenClass$2.StringLiteral,name:""},REGEXP:{klass:TokenClass$2.RegularExpression,name:""},IDENTIFIER:{klass:TokenClass$2.Ident,name:""},CONST:{klass:TokenClass$2.Keyword,name:"const"},TEMPLATE:{klass:TokenClass$2.TemplateElement,name:""},ESCAPED_KEYWORD:{klass:TokenClass$2.Keyword,name:""},ILLEGAL:{klass:TokenClass$2.Illegal,name:""}},TT=TokenType$2,I=TT.ILLEGAL,F=!1,T=!0,ONE_CHAR_PUNCTUATOR=[I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,TT.NOT,I,I,I,TT.MOD,TT.BIT_AND,I,TT.LPAREN,TT.RPAREN,TT.MUL,TT.ADD,TT.COMMA,TT.SUB,TT.PERIOD,TT.DIV,I,I,I,I,I,I,I,I,I,I,TT.COLON,TT.SEMICOLON,TT.LT,TT.ASSIGN,TT.GT,TT.CONDITIONAL,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,TT.LBRACK,I,TT.RBRACK,TT.BIT_XOR,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,TT.LBRACE,TT.BIT_OR,TT.RBRACE,TT.BIT_NOT],PUNCTUATOR_START=[F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,T,F,F,F,T,T,F,T,T,T,T,T,T,F,T,F,F,F,F,F,F,F,F,F,F,T,T,T,T,T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,T,F,T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,T,T,T,T,F];class JsError$1 extends Error{constructor(e,r,u,i){super(i),this.index=e;try{this.line=r,this.column=u}catch{}this.parseErrorLine=r,this.parseErrorColumn=u,this.description=i,this.message=`[${r}:${u}]: ${i}`}}function fromCodePoint(s){if(s<=65535)return String.fromCharCode(s);let e=String.fromCharCode(Math.floor((s-65536)/1024)+55296),r=String.fromCharCode((s-65536)%1024+56320);return e+r}function decodeUtf16(s,e){return(s-55296)*1024+(e-56320)+65536}class Tokenizer$2{constructor(e){this.source=e,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}saveLexerState(){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}}restoreLexerState(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}createILLEGAL(){return this.startIndex=this.index,this.startLine=this.line,this.startLineStart=this.lineStart,this.indexJSON.stringify(arguments[+n+2]));return e.slice&&e.slice.startLocation&&(e=e.slice.startLocation),new JsError$1(e.offset,e.line,e.column+1,u)}static cse2(e,r,u){return e.charAt(1)===r&&e.charAt(2)===u}static cse3(e,r,u,i){return e.charAt(1)===r&&e.charAt(2)===u&&e.charAt(3)===i}static cse4(e,r,u,i,n){return e.charAt(1)===r&&e.charAt(2)===u&&e.charAt(3)===i&&e.charAt(4)===n}static cse5(e,r,u,i,n,a){return e.charAt(1)===r&&e.charAt(2)===u&&e.charAt(3)===i&&e.charAt(4)===n&&e.charAt(5)===a}static cse6(e,r,u,i,n,a,l){return e.charAt(1)===r&&e.charAt(2)===u&&e.charAt(3)===i&&e.charAt(4)===n&&e.charAt(5)===a&&e.charAt(6)===l}static cse7(e,r,u,i,n,a,l,o){return e.charAt(1)===r&&e.charAt(2)===u&&e.charAt(3)===i&&e.charAt(4)===n&&e.charAt(5)===a&&e.charAt(6)===l&&e.charAt(7)===o}getKeyword(e){if(e.length===1||e.length>10)return TokenType$2.IDENTIFIER;switch(e.length){case 2:switch(e.charAt(0)){case"i":switch(e.charAt(1)){case"f":return TokenType$2.IF;case"n":return TokenType$2.IN}break;case"d":if(e.charAt(1)==="o")return TokenType$2.DO;break}break;case 3:switch(e.charAt(0)){case"v":if(Tokenizer$2.cse2(e,"a","r"))return TokenType$2.VAR;break;case"f":if(Tokenizer$2.cse2(e,"o","r"))return TokenType$2.FOR;break;case"n":if(Tokenizer$2.cse2(e,"e","w"))return TokenType$2.NEW;break;case"t":if(Tokenizer$2.cse2(e,"r","y"))return TokenType$2.TRY;break;case"l":if(Tokenizer$2.cse2(e,"e","t"))return TokenType$2.LET;break}break;case 4:switch(e.charAt(0)){case"t":if(Tokenizer$2.cse3(e,"h","i","s"))return TokenType$2.THIS;if(Tokenizer$2.cse3(e,"r","u","e"))return TokenType$2.TRUE;break;case"n":if(Tokenizer$2.cse3(e,"u","l","l"))return TokenType$2.NULL;break;case"e":if(Tokenizer$2.cse3(e,"l","s","e"))return TokenType$2.ELSE;if(Tokenizer$2.cse3(e,"n","u","m"))return TokenType$2.ENUM;break;case"c":if(Tokenizer$2.cse3(e,"a","s","e"))return TokenType$2.CASE;break;case"v":if(Tokenizer$2.cse3(e,"o","i","d"))return TokenType$2.VOID;break;case"w":if(Tokenizer$2.cse3(e,"i","t","h"))return TokenType$2.WITH;break}break;case 5:switch(e.charAt(0)){case"a":if(Tokenizer$2.cse4(e,"s","y","n","c"))return TokenType$2.ASYNC;if(Tokenizer$2.cse4(e,"w","a","i","t"))return TokenType$2.AWAIT;break;case"w":if(Tokenizer$2.cse4(e,"h","i","l","e"))return TokenType$2.WHILE;break;case"b":if(Tokenizer$2.cse4(e,"r","e","a","k"))return TokenType$2.BREAK;break;case"f":if(Tokenizer$2.cse4(e,"a","l","s","e"))return TokenType$2.FALSE;break;case"c":if(Tokenizer$2.cse4(e,"a","t","c","h"))return TokenType$2.CATCH;if(Tokenizer$2.cse4(e,"o","n","s","t"))return TokenType$2.CONST;if(Tokenizer$2.cse4(e,"l","a","s","s"))return TokenType$2.CLASS;break;case"t":if(Tokenizer$2.cse4(e,"h","r","o","w"))return TokenType$2.THROW;break;case"y":if(Tokenizer$2.cse4(e,"i","e","l","d"))return TokenType$2.YIELD;break;case"s":if(Tokenizer$2.cse4(e,"u","p","e","r"))return TokenType$2.SUPER;break}break;case 6:switch(e.charAt(0)){case"r":if(Tokenizer$2.cse5(e,"e","t","u","r","n"))return TokenType$2.RETURN;break;case"t":if(Tokenizer$2.cse5(e,"y","p","e","o","f"))return TokenType$2.TYPEOF;break;case"d":if(Tokenizer$2.cse5(e,"e","l","e","t","e"))return TokenType$2.DELETE;break;case"s":if(Tokenizer$2.cse5(e,"w","i","t","c","h"))return TokenType$2.SWITCH;break;case"e":if(Tokenizer$2.cse5(e,"x","p","o","r","t"))return TokenType$2.EXPORT;break;case"i":if(Tokenizer$2.cse5(e,"m","p","o","r","t"))return TokenType$2.IMPORT;break}break;case 7:switch(e.charAt(0)){case"d":if(Tokenizer$2.cse6(e,"e","f","a","u","l","t"))return TokenType$2.DEFAULT;break;case"f":if(Tokenizer$2.cse6(e,"i","n","a","l","l","y"))return TokenType$2.FINALLY;break;case"e":if(Tokenizer$2.cse6(e,"x","t","e","n","d","s"))return TokenType$2.EXTENDS;break}break;case 8:switch(e.charAt(0)){case"f":if(Tokenizer$2.cse7(e,"u","n","c","t","i","o","n"))return TokenType$2.FUNCTION;break;case"c":if(Tokenizer$2.cse7(e,"o","n","t","i","n","u","e"))return TokenType$2.CONTINUE;break;case"d":if(Tokenizer$2.cse7(e,"e","b","u","g","g","e","r"))return TokenType$2.DEBUGGER;break}break;case 10:if(e==="instanceof")return TokenType$2.INSTANCEOF;break}return TokenType$2.IDENTIFIER}skipSingleLineComment(e){for(this.index+=e;this.index=r)break;if(u=this.source.charCodeAt(this.index+1),u===47)this.skipSingleLineComment(2),e=!0;else if(u===42)e=this.skipMultiLineComment()||e;else break}else if(!this.moduleIsTheGoalSymbol&&e&&u===45){if(this.index+2>=r)break;if(this.source.charAt(this.index+1)==="-"&&this.source.charAt(this.index+2)===">")this.skipSingleLineComment(3);else break}else if(!this.moduleIsTheGoalSymbol&&u===60)if(this.source.slice(this.index+1,this.index+4)==="!--")this.skipSingleLineComment(4),e=!0;else break;else break}}scanHexEscape2(){if(this.index+2>this.source.length)return-1;let e=getHexValue(this.source.charAt(this.index));if(e===-1)return-1;let r=getHexValue(this.source.charAt(this.index+1));return r===-1?-1:(this.index+=2,e<<4|r)}scanUnicode(){if(this.source.charAt(this.index)==="{"){let n=this.index+1,a=0,l;for(;n1114111)throw this.createILLEGAL();n++}if(l!=="}")throw this.createILLEGAL();if(n===this.index+1)throw++this.index,this.createILLEGAL();return this.index=n+1,a}if(this.index+4>this.source.length)return-1;let e=getHexValue(this.source.charAt(this.index));if(e===-1)return-1;let r=getHexValue(this.source.charAt(this.index+1));if(r===-1)return-1;let u=getHexValue(this.source.charAt(this.index+2));if(u===-1)return-1;let i=getHexValue(this.source.charAt(this.index+3));return i===-1?-1:(this.index+=4,e<<12|r<<8|u<<4|i)}getEscapedIdentifier(){let e="",r=isIdentifierStart;for(;this.index=this.source.length)throw this.createILLEGAL();if(this.source.charAt(this.index)!=="u")throw this.createILLEGAL();if(++this.index,i=this.scanUnicode(),i<0)throw this.createILLEGAL();u=fromCodePoint(i)}else if(i>=55296&&i<=56319){if(this.index>=this.source.length)throw this.createILLEGAL();let a=this.source.charCodeAt(this.index);if(++this.index,!(a>=56320&&a<=57343))throw this.createILLEGAL();i=decodeUtf16(i,a),u=fromCodePoint(i)}if(!r(i)){if(e.length<1)throw this.createILLEGAL();return this.index=n,e}r=isIdentifierPart,e+=u}return e}getIdentifier(){let e=this.index,r=this.source.length,u=this.index,i=isIdentifierStart;for(;u=55296&&a<=56319)return this.index=e,this.getEscapedIdentifier();if(!i(a))return this.index=u,this.source.slice(e,u);++u,i=isIdentifierPart}return this.index=u,this.source.slice(e,u)}scanIdentifier(){let e=this.getLocation(),r=this.index,u=this.source.charAt(this.index)==="\\"?this.getEscapedIdentifier():this.getIdentifier(),i=this.getSlice(r,e);i.text=u;let n=this.index-r!==u.length,a=this.getKeyword(u);return n&&a!==TokenType$2.IDENTIFIER&&(a=TokenType$2.ESCAPED_KEYWORD),{type:a,value:u,slice:i,escaped:n}}getLocation(){return{line:this.startLine+1,column:this.startIndex-this.startLineStart,offset:this.startIndex}}getLastTokenEndLocation(){return{line:this.lastLine+1,column:this.lastIndex-this.lastLineStart,offset:this.lastIndex}}getSlice(e,r){return{text:this.source.slice(e,this.index),start:e,startLocation:r,end:this.index}}scanPunctuatorHelper(){let e=this.source.charAt(this.index);switch(e){case".":return this.source.charAt(this.index+1)!=="."||this.source.charAt(this.index+2)!=="."?TokenType$2.PERIOD:TokenType$2.ELLIPSIS;case"(":return TokenType$2.LPAREN;case")":case";":case",":return ONE_CHAR_PUNCTUATOR[e.charCodeAt(0)];case"{":return TokenType$2.LBRACE;case"}":case"[":case"]":case":":case"?":case"~":return ONE_CHAR_PUNCTUATOR[e.charCodeAt(0)];default:if(this.index+1":return TokenType$2.GTE;case"/":return TokenType$2.ASSIGN_DIV;case"%":return TokenType$2.ASSIGN_MOD;case"^":return TokenType$2.ASSIGN_BIT_XOR;case"&":return TokenType$2.ASSIGN_BIT_AND}}if(this.index+1"&&u===">")return this.index+3"&&u==="=")return TokenType$2.ASSIGN_SHR;if(e==="*"&&u==="=")return TokenType$2.ASSIGN_EXP}switch(e){case"*":return TokenType$2.EXP;case"+":return TokenType$2.INC;case"-":return TokenType$2.DEC;case"<":return TokenType$2.SHL;case">":return TokenType$2.SHR;case"&":return TokenType$2.AND;case"|":return TokenType$2.OR}}else if(e==="="&&r===">")return TokenType$2.ARROW}return ONE_CHAR_PUNCTUATOR[e.charCodeAt(0)]}scanPunctuator(){let e=this.getLocation(),r=this.index,u=this.scanPunctuatorHelper();return this.index+=u.name.length,{type:u,value:u.name,slice:this.getSlice(r,e)}}scanHexLiteral(e,r){let u=this.index;for(;u="0"&&u<="7")this.index++;else{if(isIdentifierPart(u.charCodeAt(0)))throw this.createILLEGAL();break}}if(this.index-e===2)throw this.createILLEGAL();return{type:TokenType$2.NUMBER,value:parseInt(this.getSlice(e,r).text.substr(2),8),slice:this.getSlice(e,r),octal:!1,noctal:!1}}scanLegacyOctalLiteral(e,r){let u=!0;for(;this.index="0"&&n<="7")this.index++;else if(n==="8"||n==="9")u=!1,this.index++;else{if(isIdentifierPart(n.charCodeAt(0)))throw this.createILLEGAL();break}}let i=this.getSlice(e,r);return u?{type:TokenType$2.NUMBER,slice:i,value:parseInt(i.text.substr(1),8),octal:!0,noctal:!u}:(this.eatDecimalLiteralSuffix(),{type:TokenType$2.NUMBER,slice:i,value:+i.text,octal:!0,noctal:!u})}scanNumericLiteral(){let e=this.source.charAt(this.index),r=this.getLocation(),u=this.index;if(e==="0")if(this.index++,this.index="0"&&e<="9")return this.scanLegacyOctalLiteral(u,r)}else{let n=this.getSlice(u,r);return{type:TokenType$2.NUMBER,value:+n.text,slice:n,octal:!1,noctal:!1}}else if(e!==".")for(e=this.source.charAt(this.index);e>="0"&&e<="9";){if(this.index++,this.index===this.source.length){let n=this.getSlice(u,r);return{type:TokenType$2.NUMBER,value:+n.text,slice:n,octal:!1,noctal:!1}}e=this.source.charAt(this.index)}if(this.eatDecimalLiteralSuffix(),this.index!==this.source.length&&isIdentifierStart(this.source.charCodeAt(this.index)))throw this.createILLEGAL();let i=this.getSlice(u,r);return{type:TokenType$2.NUMBER,value:+i.text,slice:i,octal:!1,noctal:!1}}eatDecimalLiteralSuffix(){let 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==="+"||e==="-"){if(this.index++,this.index===this.source.length)throw this.createILLEGAL();e=this.source.charAt(this.index)}if(e>="0"&&e<="9")for(;e>="0"&&e<="9"&&(this.index++,this.index!==this.source.length);)e=this.source.charAt(this.index);else throw this.createILLEGAL()}}scanStringEscape(e,r){if(this.index++,this.index===this.source.length)throw this.createILLEGAL();let u=this.source.charAt(this.index);if(isLineTerminator$1(u.charCodeAt(0)))this.index++,u==="\r"&&this.source.charAt(this.index)===` +`&&this.index++,this.lineStart=this.index,this.line++;else switch(u){case"n":e+=` +`,this.index++;break;case"r":e+="\r",this.index++;break;case"t":e+=" ",this.index++;break;case"u":case"x":{let i;if(this.index++,this.index>=this.source.length)throw this.createILLEGAL();if(i=u==="u"?this.scanUnicode():this.scanHexEscape2(),i<0)throw this.createILLEGAL();e+=fromCodePoint(i);break}case"b":e+="\b",this.index++;break;case"f":e+="\f",this.index++;break;case"v":e+="\v",this.index++;break;default:if(u>="0"&&u<="7"){let i=this.index,n=1;u>="0"&&u<="3"&&(n=0);let a=0;for(;n<3&&u>="0"&&u<="7";){if(this.index++,(n>0||u!=="0")&&(r=this.source.slice(i,this.index)),a*=8,a+=u-"0",n++,this.index===this.source.length)throw this.createILLEGAL();u=this.source.charAt(this.index)}a===0&&n===1&&(u==="8"||u==="9")&&(r=this.source.slice(i,this.index+1)),e+=String.fromCharCode(a)}else{if(u==="8"||u==="9")throw this.createILLEGAL();e+=u,this.index++}}return[e,r]}scanStringLiteral(){let e="",r=this.source.charAt(this.index),u=this.getLocation(),i=this.index;this.index++;let n=null;for(;this.index=this.source.length)return{type:TokenType$2.EOS,slice:this.getSlice(this.index,e)};let r=this.source.charCodeAt(this.index);if(r<128){if(PUNCTUATOR_START[r])return this.scanPunctuator();if(isIdentifierStart(r)||r===92)return this.scanIdentifier();if(r===46)return this.index+1=48&&r<=57)return this.scanNumericLiteral();throw this.createILLEGAL()}else{if(isIdentifierStart(r)||r>=55296&&r<=56319)return this.scanIdentifier();throw this.createILLEGAL()}}eof(){return this.lookahead.type===TokenType$2.EOS}lex(){let e=this.lookahead;return this.lookahead=this.advance(),this.tokenIndex++,e}}var tokenizer={default:Tokenizer$2,Tokenizer:Tokenizer$2,TokenClass:TokenClass$2,TokenType:TokenType$2,JsError:JsError$1},gen={};gen.ArrayAssignmentTarget=class{constructor({elements:s,rest:e}){this.type="ArrayAssignmentTarget",this.elements=s,this.rest=e}};gen.ArrayBinding=class{constructor({elements:s,rest:e}){this.type="ArrayBinding",this.elements=s,this.rest=e}};var ArrayExpression=gen.ArrayExpression=class{constructor({elements:s}){this.type="ArrayExpression",this.elements=s}};gen.ArrowExpression=class{constructor({isAsync:s,params:e,body:r}){this.type="ArrowExpression",this.isAsync=s,this.params=e,this.body=r}};gen.AssignmentExpression=class{constructor({binding:s,expression:e}){this.type="AssignmentExpression",this.binding=s,this.expression=e}};gen.AssignmentTargetIdentifier=class{constructor({name:s}){this.type="AssignmentTargetIdentifier",this.name=s}};gen.AssignmentTargetPropertyIdentifier=class{constructor({binding:s,init:e}){this.type="AssignmentTargetPropertyIdentifier",this.binding=s,this.init=e}};gen.AssignmentTargetPropertyProperty=class{constructor({name:s,binding:e}){this.type="AssignmentTargetPropertyProperty",this.name=s,this.binding=e}};gen.AssignmentTargetWithDefault=class{constructor({binding:s,init:e}){this.type="AssignmentTargetWithDefault",this.binding=s,this.init=e}};gen.AwaitExpression=class{constructor({expression:s}){this.type="AwaitExpression",this.expression=s}};gen.BinaryExpression=class{constructor({left:s,operator:e,right:r}){this.type="BinaryExpression",this.left=s,this.operator=e,this.right=r}};gen.BindingIdentifier=class{constructor({name:s}){this.type="BindingIdentifier",this.name=s}};gen.BindingPropertyIdentifier=class{constructor({binding:s,init:e}){this.type="BindingPropertyIdentifier",this.binding=s,this.init=e}};gen.BindingPropertyProperty=class{constructor({name:s,binding:e}){this.type="BindingPropertyProperty",this.name=s,this.binding=e}};gen.BindingWithDefault=class{constructor({binding:s,init:e}){this.type="BindingWithDefault",this.binding=s,this.init=e}};gen.Block=class{constructor({statements:s}){this.type="Block",this.statements=s}};gen.BlockStatement=class{constructor({block:s}){this.type="BlockStatement",this.block=s}};gen.BreakStatement=class{constructor({label:s}){this.type="BreakStatement",this.label=s}};var CallExpression=gen.CallExpression=class{constructor({callee:s,arguments:e}){this.type="CallExpression",this.callee=s,this.arguments=e}};gen.CatchClause=class{constructor({binding:s,body:e}){this.type="CatchClause",this.binding=s,this.body=e}};gen.ClassDeclaration=class{constructor({name:s,super:e,elements:r}){this.type="ClassDeclaration",this.name=s,this.super=e,this.elements=r}};gen.ClassElement=class{constructor({isStatic:s,method:e}){this.type="ClassElement",this.isStatic=s,this.method=e}};gen.ClassExpression=class{constructor({name:s,super:e,elements:r}){this.type="ClassExpression",this.name=s,this.super=e,this.elements=r}};gen.CompoundAssignmentExpression=class{constructor({binding:s,operator:e,expression:r}){this.type="CompoundAssignmentExpression",this.binding=s,this.operator=e,this.expression=r}};gen.ComputedMemberAssignmentTarget=class{constructor({object:s,expression:e}){this.type="ComputedMemberAssignmentTarget",this.object=s,this.expression=e}};gen.ComputedMemberExpression=class{constructor({object:s,expression:e}){this.type="ComputedMemberExpression",this.object=s,this.expression=e}};gen.ComputedPropertyName=class{constructor({expression:s}){this.type="ComputedPropertyName",this.expression=s}};gen.ConditionalExpression=class{constructor({test:s,consequent:e,alternate:r}){this.type="ConditionalExpression",this.test=s,this.consequent=e,this.alternate=r}};gen.ContinueStatement=class{constructor({label:s}){this.type="ContinueStatement",this.label=s}};gen.DataProperty=class{constructor({name:s,expression:e}){this.type="DataProperty",this.name=s,this.expression=e}};gen.DebuggerStatement=class{constructor(){this.type="DebuggerStatement"}};gen.Directive=class{constructor({rawValue:s}){this.type="Directive",this.rawValue=s}};gen.DoWhileStatement=class{constructor({body:s,test:e}){this.type="DoWhileStatement",this.body=s,this.test=e}};gen.EmptyStatement=class{constructor(){this.type="EmptyStatement"}};gen.Export=class{constructor({declaration:s}){this.type="Export",this.declaration=s}};gen.ExportAllFrom=class{constructor({moduleSpecifier:s}){this.type="ExportAllFrom",this.moduleSpecifier=s}};gen.ExportDefault=class{constructor({body:s}){this.type="ExportDefault",this.body=s}};gen.ExportFrom=class{constructor({namedExports:s,moduleSpecifier:e}){this.type="ExportFrom",this.namedExports=s,this.moduleSpecifier=e}};gen.ExportFromSpecifier=class{constructor({name:s,exportedName:e}){this.type="ExportFromSpecifier",this.name=s,this.exportedName=e}};gen.ExportLocalSpecifier=class{constructor({name:s,exportedName:e}){this.type="ExportLocalSpecifier",this.name=s,this.exportedName=e}};gen.ExportLocals=class{constructor({namedExports:s}){this.type="ExportLocals",this.namedExports=s}};gen.ExpressionStatement=class{constructor({expression:s}){this.type="ExpressionStatement",this.expression=s}};gen.ForAwaitStatement=class{constructor({left:s,right:e,body:r}){this.type="ForAwaitStatement",this.left=s,this.right=e,this.body=r}};gen.ForInStatement=class{constructor({left:s,right:e,body:r}){this.type="ForInStatement",this.left=s,this.right=e,this.body=r}};gen.ForOfStatement=class{constructor({left:s,right:e,body:r}){this.type="ForOfStatement",this.left=s,this.right=e,this.body=r}};gen.ForStatement=class{constructor({init:s,test:e,update:r,body:u}){this.type="ForStatement",this.init=s,this.test=e,this.update=r,this.body=u}};gen.FormalParameters=class{constructor({items:s,rest:e}){this.type="FormalParameters",this.items=s,this.rest=e}};gen.FunctionBody=class{constructor({directives:s,statements:e}){this.type="FunctionBody",this.directives=s,this.statements=e}};gen.FunctionDeclaration=class{constructor({isAsync:s,isGenerator:e,name:r,params:u,body:i}){this.type="FunctionDeclaration",this.isAsync=s,this.isGenerator=e,this.name=r,this.params=u,this.body=i}};gen.FunctionExpression=class{constructor({isAsync:s,isGenerator:e,name:r,params:u,body:i}){this.type="FunctionExpression",this.isAsync=s,this.isGenerator=e,this.name=r,this.params=u,this.body=i}};gen.Getter=class{constructor({name:s,body:e}){this.type="Getter",this.name=s,this.body=e}};var IdentifierExpression=gen.IdentifierExpression=class{constructor({name:s}){this.type="IdentifierExpression",this.name=s}};gen.IfStatement=class{constructor({test:s,consequent:e,alternate:r}){this.type="IfStatement",this.test=s,this.consequent=e,this.alternate=r}};gen.Import=class{constructor({defaultBinding:s,namedImports:e,moduleSpecifier:r}){this.type="Import",this.defaultBinding=s,this.namedImports=e,this.moduleSpecifier=r}};gen.ImportNamespace=class{constructor({defaultBinding:s,namespaceBinding:e,moduleSpecifier:r}){this.type="ImportNamespace",this.defaultBinding=s,this.namespaceBinding=e,this.moduleSpecifier=r}};gen.ImportSpecifier=class{constructor({name:s,binding:e}){this.type="ImportSpecifier",this.name=s,this.binding=e}};gen.LabeledStatement=class{constructor({label:s,body:e}){this.type="LabeledStatement",this.label=s,this.body=e}};gen.LiteralBooleanExpression=class{constructor({value:s}){this.type="LiteralBooleanExpression",this.value=s}};gen.LiteralInfinityExpression=class{constructor(){this.type="LiteralInfinityExpression"}};gen.LiteralNullExpression=class{constructor(){this.type="LiteralNullExpression"}};var LiteralNumericExpression=gen.LiteralNumericExpression=class{constructor({value:s}){this.type="LiteralNumericExpression",this.value=s}};gen.LiteralRegExpExpression=class{constructor({pattern:s,global:e,ignoreCase:r,multiLine:u,dotAll:i,unicode:n,sticky:a}){this.type="LiteralRegExpExpression",this.pattern=s,this.global=e,this.ignoreCase=r,this.multiLine=u,this.dotAll=i,this.unicode=n,this.sticky=a}};var LiteralStringExpression=gen.LiteralStringExpression=class{constructor({value:s}){this.type="LiteralStringExpression",this.value=s}};gen.Method=class{constructor({isAsync:s,isGenerator:e,name:r,params:u,body:i}){this.type="Method",this.isAsync=s,this.isGenerator=e,this.name=r,this.params=u,this.body=i}};gen.Module=class{constructor({directives:s,items:e}){this.type="Module",this.directives=s,this.items=e}};gen.NewExpression=class{constructor({callee:s,arguments:e}){this.type="NewExpression",this.callee=s,this.arguments=e}};gen.NewTargetExpression=class{constructor(){this.type="NewTargetExpression"}};gen.ObjectAssignmentTarget=class{constructor({properties:s,rest:e}){this.type="ObjectAssignmentTarget",this.properties=s,this.rest=e}};gen.ObjectBinding=class{constructor({properties:s,rest:e}){this.type="ObjectBinding",this.properties=s,this.rest=e}};gen.ObjectExpression=class{constructor({properties:s}){this.type="ObjectExpression",this.properties=s}};var ReturnStatement=gen.ReturnStatement=class{constructor({expression:s}){this.type="ReturnStatement",this.expression=s}};gen.Script=class{constructor({directives:s,statements:e}){this.type="Script",this.directives=s,this.statements=e}};gen.Setter=class{constructor({name:s,param:e,body:r}){this.type="Setter",this.name=s,this.param=e,this.body=r}};gen.ShorthandProperty=class{constructor({name:s}){this.type="ShorthandProperty",this.name=s}};gen.SpreadElement=class{constructor({expression:s}){this.type="SpreadElement",this.expression=s}};gen.SpreadProperty=class{constructor({expression:s}){this.type="SpreadProperty",this.expression=s}};gen.StaticMemberAssignmentTarget=class{constructor({object:s,property:e}){this.type="StaticMemberAssignmentTarget",this.object=s,this.property=e}};var StaticMemberExpression=gen.StaticMemberExpression=class{constructor({object:s,property:e}){this.type="StaticMemberExpression",this.object=s,this.property=e}};gen.StaticPropertyName=class{constructor({value:s}){this.type="StaticPropertyName",this.value=s}};gen.Super=class{constructor(){this.type="Super"}};gen.SwitchCase=class{constructor({test:s,consequent:e}){this.type="SwitchCase",this.test=s,this.consequent=e}};gen.SwitchDefault=class{constructor({consequent:s}){this.type="SwitchDefault",this.consequent=s}};gen.SwitchStatement=class{constructor({discriminant:s,cases:e}){this.type="SwitchStatement",this.discriminant=s,this.cases=e}};gen.SwitchStatementWithDefault=class{constructor({discriminant:s,preDefaultCases:e,defaultCase:r,postDefaultCases:u}){this.type="SwitchStatementWithDefault",this.discriminant=s,this.preDefaultCases=e,this.defaultCase=r,this.postDefaultCases=u}};gen.TemplateElement=class{constructor({rawValue:s}){this.type="TemplateElement",this.rawValue=s}};gen.TemplateExpression=class{constructor({tag:s,elements:e}){this.type="TemplateExpression",this.tag=s,this.elements=e}};gen.ThisExpression=class{constructor(){this.type="ThisExpression"}};gen.ThrowStatement=class{constructor({expression:s}){this.type="ThrowStatement",this.expression=s}};gen.TryCatchStatement=class{constructor({body:s,catchClause:e}){this.type="TryCatchStatement",this.body=s,this.catchClause=e}};gen.TryFinallyStatement=class{constructor({body:s,catchClause:e,finalizer:r}){this.type="TryFinallyStatement",this.body=s,this.catchClause=e,this.finalizer=r}};gen.UnaryExpression=class{constructor({operator:s,operand:e}){this.type="UnaryExpression",this.operator=s,this.operand=e}};gen.UpdateExpression=class{constructor({isPrefix:s,operator:e,operand:r}){this.type="UpdateExpression",this.isPrefix=s,this.operator=e,this.operand=r}};gen.VariableDeclaration=class{constructor({kind:s,declarators:e}){this.type="VariableDeclaration",this.kind=s,this.declarators=e}};gen.VariableDeclarationStatement=class{constructor({declaration:s}){this.type="VariableDeclarationStatement",this.declaration=s}};gen.VariableDeclarator=class{constructor({binding:s,init:e}){this.type="VariableDeclarator",this.binding=s,this.init=e}};gen.WhileStatement=class{constructor({test:s,body:e}){this.type="WhileStatement",this.test=s,this.body=e}};gen.WithStatement=class{constructor({object:s,body:e}){this.type="WithStatement",this.object=s,this.body=e}};gen.YieldExpression=class{constructor({expression:s}){this.type="YieldExpression",this.expression=s}};gen.YieldGeneratorExpression=class{constructor({expression:s}){this.type="YieldGeneratorExpression",this.expression=s}};const{ErrorMessages:ErrorMessages$1}=errors,acceptRegex=src$3,{Tokenizer:Tokenizer$1,TokenClass:TokenClass$1,TokenType:TokenType$1}=tokenizer,AST=gen,ARROW_EXPRESSION_PARAMS="CoverParenthesizedExpressionAndArrowParameterList",EXPORT_UNKNOWN_SPECIFIER="ExportNameOfUnknownType",Precedence$4={Sequence:0,Yield:1,Assignment:1,Conditional:2,ArrowFunction:2,LogicalOR:3,LogicalAND:4,BitwiseOR:5,BitwiseXOR:6,BitwiseAND:7,Equality:8,Relational:9,BitwiseSHIFT:10,Additive:11,Multiplicative:12,Unary:13,Postfix:14,Call:15,New:16,TaggedTemplate:17,Member:18,Primary:19},BinaryPrecedence$1={"||":Precedence$4.LogicalOR,"&&":Precedence$4.LogicalAND,"|":Precedence$4.BitwiseOR,"^":Precedence$4.BitwiseXOR,"&":Precedence$4.BitwiseAND,"==":Precedence$4.Equality,"!=":Precedence$4.Equality,"===":Precedence$4.Equality,"!==":Precedence$4.Equality,"<":Precedence$4.Relational,">":Precedence$4.Relational,"<=":Precedence$4.Relational,">=":Precedence$4.Relational,in:Precedence$4.Relational,instanceof:Precedence$4.Relational,"<<":Precedence$4.BitwiseSHIFT,">>":Precedence$4.BitwiseSHIFT,">>>":Precedence$4.BitwiseSHIFT,"+":Precedence$4.Additive,"-":Precedence$4.Additive,"*":Precedence$4.Multiplicative,"%":Precedence$4.Multiplicative,"/":Precedence$4.Multiplicative};function isValidSimpleAssignmentTarget(s){if(s==null)return!1;switch(s.type){case"IdentifierExpression":case"ComputedMemberExpression":case"StaticMemberExpression":return!0}return!1}function isPrefixOperator(s){switch(s.type){case TokenType$1.INC:case TokenType$1.DEC:case TokenType$1.ADD:case TokenType$1.SUB:case TokenType$1.BIT_NOT:case TokenType$1.NOT:case TokenType$1.DELETE:case TokenType$1.VOID:case TokenType$1.TYPEOF:return!0}return!1}function isUpdateOperator(s){return s.type===TokenType$1.INC||s.type===TokenType$1.DEC}class GenericParser$1 extends Tokenizer$1{constructor(e){super(e),this.allowIn=!0,this.inFunctionBody=!1,this.inParameter=!1,this.allowYieldExpression=!1,this.allowAwaitExpression=!1,this.firstAwaitLocation=null,this.module=!1,this.moduleIsTheGoalSymbol=!1,this.strict=!1,this.isBindingElement=!0,this.isAssignmentTarget=!0,this.firstExprError=null}match(e){return this.lookahead.type===e}matchIdentifier(){switch(this.lookahead.type){case TokenType$1.IDENTIFIER:case TokenType$1.LET:case TokenType$1.YIELD:case TokenType$1.ASYNC:return!0;case TokenType$1.AWAIT:return this.moduleIsTheGoalSymbol?!1:(this.firstAwaitLocation===null&&(this.firstAwaitLocation=this.getLocation()),!0);case TokenType$1.ESCAPED_KEYWORD:return this.lookahead.value==="await"&&!this.moduleIsTheGoalSymbol?(this.firstAwaitLocation===null&&(this.firstAwaitLocation=this.getLocation()),!0):this.lookahead.value==="let"||this.lookahead.value==="yield"||this.lookahead.value==="async"}return!1}eat(e){return this.lookahead.type===e?this.lex():null}expect(e){if(this.lookahead.type===e)return this.lex();throw this.createUnexpected(this.lookahead)}matchContextualKeyword(e){return this.lookahead.type===TokenType$1.IDENTIFIER&&!this.lookahead.escaped&&this.lookahead.value===e}expectContextualKeyword(e){if(this.lookahead.type===TokenType$1.IDENTIFIER&&!this.lookahead.escaped&&this.lookahead.value===e)return this.lex();throw this.createUnexpected(this.lookahead)}eatContextualKeyword(e){return this.lookahead.type===TokenType$1.IDENTIFIER&&!this.lookahead.escaped&&this.lookahead.value===e?this.lex():null}consumeSemicolon(){if(!this.eat(TokenType$1.SEMICOLON)&&!this.hasLineTerminatorBeforeNext&&!this.eof()&&!this.match(TokenType$1.RBRACE))throw this.createUnexpected(this.lookahead)}startNode(e){return e}copyNode(e,r){return r}finishNode(e){return e}parseModule(){this.moduleIsTheGoalSymbol=this.module=this.strict=!0,this.lookahead=this.advance();let e=this.startNode(),{directives:r,statements:u}=this.parseBody();if(!this.match(TokenType$1.EOS))throw this.createUnexpected(this.lookahead);return this.finishNode(new AST.Module({directives:r,items:u}),e)}parseScript(){this.lookahead=this.advance();let e=this.startNode(),{directives:r,statements:u}=this.parseBody();if(!this.match(TokenType$1.EOS))throw this.createUnexpected(this.lookahead);return this.finishNode(new AST.Script({directives:r,statements:u}),e)}parseFunctionBody(){let e=this.inFunctionBody,r=this.module,u=this.strict;this.inFunctionBody=!0,this.module=!1;let i=this.startNode();this.expect(TokenType$1.LBRACE);let n=new AST.FunctionBody(this.parseBody());return this.expect(TokenType$1.RBRACE),n=this.finishNode(n,i),this.inFunctionBody=e,this.module=r,this.strict=u,n}parseBody(){let e=[],r=[],u=!0,i=null;for(;!(this.eof()||this.match(TokenType$1.RBRACE));){let n=this.lookahead,a=n.slice.text,l=n.type===TokenType$1.STRING,o=this.module,c=this.getLocation(),A=this.startNode(),d=o?this.parseModuleItem():this.parseStatementListItem();if(u)if(l&&d.type==="ExpressionStatement"&&d.expression.type==="LiteralStringExpression"){!i&&n.octal&&(i=this.createErrorWithLocation(c,"Unexpected legacy octal escape sequence: \\"+n.octal));let m=a.slice(1,-1);m==="use strict"&&(this.strict=!0),e.push(this.finishNode(new AST.Directive({rawValue:m}),A))}else{if(u=!1,i&&this.strict)throw i;r.push(d)}else r.push(d)}if(i&&this.strict)throw i;return{directives:e,statements:r}}parseImportSpecifier(){let e=this.startNode(),r;if(this.matchIdentifier()){if(r=this.parseIdentifier(),!this.eatContextualKeyword("as"))return this.finishNode(new AST.ImportSpecifier({name:null,binding:this.finishNode(new AST.BindingIdentifier({name:r}),e)}),e)}else this.lookahead.type.klass.isIdentifierName&&(r=this.parseIdentifierName(),this.expectContextualKeyword("as"));return this.finishNode(new AST.ImportSpecifier({name:r,binding:this.parseBindingIdentifier()}),e)}parseNameSpaceBinding(){return this.expect(TokenType$1.MUL),this.expectContextualKeyword("as"),this.parseBindingIdentifier()}parseNamedImports(){let e=[];for(this.expect(TokenType$1.LBRACE);!this.eat(TokenType$1.RBRACE);)if(e.push(this.parseImportSpecifier()),!this.eat(TokenType$1.COMMA)){this.expect(TokenType$1.RBRACE);break}return e}parseFromClause(){return this.expectContextualKeyword("from"),this.expect(TokenType$1.STRING).str}parseImportDeclaration(){let e=this.startNode(),r=null,u;if(this.expect(TokenType$1.IMPORT),this.match(TokenType$1.STRING))return u=this.lex().str,this.consumeSemicolon(),this.finishNode(new AST.Import({defaultBinding:null,namedImports:[],moduleSpecifier:u}),e);if(this.matchIdentifier()&&(r=this.parseBindingIdentifier(),!this.eat(TokenType$1.COMMA))){let i=new AST.Import({defaultBinding:r,namedImports:[],moduleSpecifier:this.parseFromClause()});return this.consumeSemicolon(),this.finishNode(i,e)}if(this.match(TokenType$1.MUL)){let i=new AST.ImportNamespace({defaultBinding:r,namespaceBinding:this.parseNameSpaceBinding(),moduleSpecifier:this.parseFromClause()});return this.consumeSemicolon(),this.finishNode(i,e)}else if(this.match(TokenType$1.LBRACE)){let i=new AST.Import({defaultBinding:r,namedImports:this.parseNamedImports(),moduleSpecifier:this.parseFromClause()});return this.consumeSemicolon(),this.finishNode(i,e)}throw this.createUnexpected(this.lookahead)}parseExportSpecifier(){let e=this.startNode(),r=this.finishNode({type:EXPORT_UNKNOWN_SPECIFIER,isIdentifier:this.matchIdentifier(),value:this.parseIdentifierName()},e);if(this.eatContextualKeyword("as")){let u=this.parseIdentifierName();return this.finishNode({name:r,exportedName:u},e)}return this.finishNode({name:r,exportedName:null},e)}parseExportClause(){this.expect(TokenType$1.LBRACE);let e=[];for(;!this.eat(TokenType$1.RBRACE);)if(e.push(this.parseExportSpecifier()),!this.eat(TokenType$1.COMMA)){this.expect(TokenType$1.RBRACE);break}return e}parseExportDeclaration(){let e=this.startNode(),r;switch(this.expect(TokenType$1.EXPORT),this.lookahead.type){case TokenType$1.MUL:this.lex(),r=new AST.ExportAllFrom({moduleSpecifier:this.parseFromClause()}),this.consumeSemicolon();break;case TokenType$1.LBRACE:{let u=this.parseExportClause(),i=null;this.matchContextualKeyword("from")?(i=this.parseFromClause(),r=new AST.ExportFrom({namedExports:u.map(n=>this.copyNode(n,new AST.ExportFromSpecifier({name:n.name.value,exportedName:n.exportedName}))),moduleSpecifier:i})):(u.forEach(({name:n})=>{if(!n.isIdentifier)throw this.createError(ErrorMessages$1.ILLEGAL_EXPORTED_NAME)}),r=new AST.ExportLocals({namedExports:u.map(n=>this.copyNode(n,new AST.ExportLocalSpecifier({name:this.copyNode(n.name,new AST.IdentifierExpression({name:n.name.value})),exportedName:n.exportedName})))})),this.consumeSemicolon();break}case TokenType$1.CLASS:r=new AST.Export({declaration:this.parseClass({isExpr:!1,inDefault:!1})});break;case TokenType$1.FUNCTION:r=new AST.Export({declaration:this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!1})});break;case TokenType$1.ASYNC:{let u=this.startNode();this.lex(),r=new AST.Export({declaration:this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!0,startState:u})});break}case TokenType$1.DEFAULT:switch(this.lex(),this.lookahead.type){case TokenType$1.FUNCTION:r=new AST.ExportDefault({body:this.parseFunction({isExpr:!1,inDefault:!0,allowGenerator:!0,isAsync:!1})});break;case TokenType$1.CLASS:r=new AST.ExportDefault({body:this.parseClass({isExpr:!1,inDefault:!0})});break;case TokenType$1.ASYNC:{let u=this.startNode(),i=this.saveLexerState();if(this.lex(),!this.hasLineTerminatorBeforeNext&&this.match(TokenType$1.FUNCTION)){r=new AST.ExportDefault({body:this.parseFunction({isExpr:!1,inDefault:!0,allowGenerator:!1,isAsync:!0,startState:u})});break}this.restoreLexerState(i)}default:r=new AST.ExportDefault({body:this.parseAssignmentExpression()}),this.consumeSemicolon();break}break;case TokenType$1.VAR:case TokenType$1.LET:case TokenType$1.CONST:r=new AST.Export({declaration:this.parseVariableDeclaration(!0)}),this.consumeSemicolon();break;default:throw this.createUnexpected(this.lookahead)}return this.finishNode(r,e)}parseModuleItem(){switch(this.lookahead.type){case TokenType$1.IMPORT:return this.parseImportDeclaration();case TokenType$1.EXPORT:return this.parseExportDeclaration();default:return this.parseStatementListItem()}}lookaheadLexicalDeclaration(){if(this.match(TokenType$1.LET)||this.match(TokenType$1.CONST)){let e=this.saveLexerState();if(this.lex(),this.matchIdentifier()||this.match(TokenType$1.LBRACE)||this.match(TokenType$1.LBRACK))return this.restoreLexerState(e),!0;this.restoreLexerState(e)}return!1}parseStatementListItem(){if(this.eof())throw this.createUnexpected(this.lookahead);switch(this.lookahead.type){case TokenType$1.FUNCTION:return this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!1});case TokenType$1.CLASS:return this.parseClass({isExpr:!1,inDefault:!1});case TokenType$1.ASYNC:{let e=this.getLocation(),r=this.saveLexerState();return this.lex(),!this.hasLineTerminatorBeforeNext&&this.match(TokenType$1.FUNCTION)?this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!0,startState:e}):(this.restoreLexerState(r),this.parseStatement())}default:if(this.lookaheadLexicalDeclaration()){let e=this.startNode();return this.finishNode(this.parseVariableDeclarationStatement(),e)}return this.parseStatement()}}parseStatement(){let e=this.startNode(),r=this.isolateCoverGrammar(this.parseStatementHelper);return this.finishNode(r,e)}parseStatementHelper(){if(this.eof())throw this.createUnexpected(this.lookahead);switch(this.lookahead.type){case TokenType$1.SEMICOLON:return this.parseEmptyStatement();case TokenType$1.LBRACE:return this.parseBlockStatement();case TokenType$1.LPAREN:return this.parseExpressionStatement();case TokenType$1.BREAK:return this.parseBreakStatement();case TokenType$1.CONTINUE:return this.parseContinueStatement();case TokenType$1.DEBUGGER:return this.parseDebuggerStatement();case TokenType$1.DO:return this.parseDoWhileStatement();case TokenType$1.FOR:return this.parseForStatement();case TokenType$1.IF:return this.parseIfStatement();case TokenType$1.RETURN:return this.parseReturnStatement();case TokenType$1.SWITCH:return this.parseSwitchStatement();case TokenType$1.THROW:return this.parseThrowStatement();case TokenType$1.TRY:return this.parseTryStatement();case TokenType$1.VAR:return this.parseVariableDeclarationStatement();case TokenType$1.WHILE:return this.parseWhileStatement();case TokenType$1.WITH:return this.parseWithStatement();case TokenType$1.FUNCTION:case TokenType$1.CLASS:throw this.createUnexpected(this.lookahead);default:{let e=this.saveLexerState();if(this.eat(TokenType$1.LET)){if(this.match(TokenType$1.LBRACK))throw this.restoreLexerState(e),this.createUnexpected(this.lookahead);this.restoreLexerState(e)}else if(this.eat(TokenType$1.ASYNC)){if(!this.hasLineTerminatorBeforeNext&&this.match(TokenType$1.FUNCTION))throw this.createUnexpected(this.lookahead);this.restoreLexerState(e)}let r=this.parseExpression();if(r.type==="IdentifierExpression"&&this.eat(TokenType$1.COLON)){let u=this.match(TokenType$1.FUNCTION)?this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!1,isAsync:!1}):this.parseStatement();return new AST.LabeledStatement({label:r.name,body:u})}return this.consumeSemicolon(),new AST.ExpressionStatement({expression:r})}}}parseEmptyStatement(){return this.lex(),new AST.EmptyStatement}parseBlockStatement(){return new AST.BlockStatement({block:this.parseBlock()})}parseExpressionStatement(){let e=this.parseExpression();return this.consumeSemicolon(),new AST.ExpressionStatement({expression:e})}parseBreakStatement(){if(this.lex(),this.eat(TokenType$1.SEMICOLON)||this.hasLineTerminatorBeforeNext)return new AST.BreakStatement({label:null});let e=null;return this.matchIdentifier()&&(e=this.parseIdentifier()),this.consumeSemicolon(),new AST.BreakStatement({label:e})}parseContinueStatement(){if(this.lex(),this.eat(TokenType$1.SEMICOLON)||this.hasLineTerminatorBeforeNext)return new AST.ContinueStatement({label:null});let e=null;return this.matchIdentifier()&&(e=this.parseIdentifier()),this.consumeSemicolon(),new AST.ContinueStatement({label:e})}parseDebuggerStatement(){return this.lex(),this.consumeSemicolon(),new AST.DebuggerStatement}parseDoWhileStatement(){this.lex();let e=this.parseStatement();this.expect(TokenType$1.WHILE),this.expect(TokenType$1.LPAREN);let r=this.parseExpression();return this.expect(TokenType$1.RPAREN),this.eat(TokenType$1.SEMICOLON),new AST.DoWhileStatement({body:e,test:r})}parseForStatement(){this.lex();let e=this.allowAwaitExpression&&this.eat(TokenType$1.AWAIT);this.expect(TokenType$1.LPAREN);let r=null,u=null;if(e&&this.match(TokenType$1.SEMICOLON))throw this.createUnexpected(this.lookahead);if(this.eat(TokenType$1.SEMICOLON))return this.match(TokenType$1.SEMICOLON)||(r=this.parseExpression()),this.expect(TokenType$1.SEMICOLON),this.match(TokenType$1.RPAREN)||(u=this.parseExpression()),new AST.ForStatement({init:null,test:r,update:u,body:this.getIteratorStatementEpilogue()});let i=this.match(TokenType$1.LET),n=this.lookaheadLexicalDeclaration(),a=this.startNode();if(this.match(TokenType$1.VAR)||n){let c=this.allowIn;this.allowIn=!1;let A=this.parseVariableDeclaration(!1);if(this.allowIn=c,A.declarators.length===1&&(this.match(TokenType$1.IN)||this.matchContextualKeyword("of"))){let d,m=A.declarators[0];if(this.match(TokenType$1.IN)){if(e)throw this.createUnexpected(this.lookahead);if(m.init!==null&&(this.strict||A.kind!=="var"||m.binding.type!=="BindingIdentifier"))throw this.createError(ErrorMessages$1.INVALID_VAR_INIT_FOR_IN);d=AST.ForInStatement,this.lex(),u=this.parseExpression()}else{if(m.init!==null)throw this.createError(e?ErrorMessages$1.INVALID_VAR_INIT_FOR_AWAIT:ErrorMessages$1.INVALID_VAR_INIT_FOR_OF);e?d=AST.ForAwaitStatement:d=AST.ForOfStatement,this.lex(),u=this.parseAssignmentExpression()}let f=this.getIteratorStatementEpilogue();return new d({left:A,right:u,body:f})}else if(e)throw this.createUnexpected(this.lookahead);if(this.expect(TokenType$1.SEMICOLON),A.declarators.some(d=>d.binding.type!=="BindingIdentifier"&&d.init===null))throw this.createError(ErrorMessages$1.UNINITIALIZED_BINDINGPATTERN_IN_FOR_INIT);return this.match(TokenType$1.SEMICOLON)||(r=this.parseExpression()),this.expect(TokenType$1.SEMICOLON),this.match(TokenType$1.RPAREN)||(u=this.parseExpression()),new AST.ForStatement({init:A,test:r,update:u,body:this.getIteratorStatementEpilogue()})}let l=this.allowIn;this.allowIn=!1;let o=this.inheritCoverGrammar(this.parseAssignmentExpressionOrTarget);if(this.allowIn=l,this.isAssignmentTarget&&o.type!=="AssignmentExpression"&&(this.match(TokenType$1.IN)||this.matchContextualKeyword("of"))){if((o.type==="ObjectAssignmentTarget"||o.type==="ArrayAssignmentTarget")&&(this.firstExprError=null),i&&this.matchContextualKeyword("of"))throw this.createError(e?ErrorMessages$1.INVALID_LHS_IN_FOR_AWAIT:ErrorMessages$1.INVALID_LHS_IN_FOR_OF);let c;if(this.match(TokenType$1.IN)){if(e)throw this.createUnexpected(this.lookahead);c=AST.ForInStatement,this.lex(),u=this.parseExpression()}else e?c=AST.ForAwaitStatement:c=AST.ForOfStatement,this.lex(),u=this.parseAssignmentExpression();return new c({left:this.transformDestructuring(o),right:u,body:this.getIteratorStatementEpilogue()})}else if(e)throw this.createError(ErrorMessages$1.INVALID_LHS_IN_FOR_AWAIT);if(this.firstExprError)throw this.firstExprError;for(;this.eat(TokenType$1.COMMA);){let c=this.parseAssignmentExpression();o=this.finishNode(new AST.BinaryExpression({left:o,operator:",",right:c}),a)}if(this.match(TokenType$1.IN))throw this.createError(ErrorMessages$1.INVALID_LHS_IN_FOR_IN);if(this.matchContextualKeyword("of"))throw this.createError(ErrorMessages$1.INVALID_LHS_IN_FOR_OF);return this.expect(TokenType$1.SEMICOLON),this.match(TokenType$1.SEMICOLON)||(r=this.parseExpression()),this.expect(TokenType$1.SEMICOLON),this.match(TokenType$1.RPAREN)||(u=this.parseExpression()),new AST.ForStatement({init:o,test:r,update:u,body:this.getIteratorStatementEpilogue()})}getIteratorStatementEpilogue(){return this.expect(TokenType$1.RPAREN),this.parseStatement()}parseIfStatementChild(){return this.match(TokenType$1.FUNCTION)?this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!1,isAsync:!1}):this.parseStatement()}parseIfStatement(){this.lex(),this.expect(TokenType$1.LPAREN);let e=this.parseExpression();this.expect(TokenType$1.RPAREN);let r=this.parseIfStatementChild(),u=null;return this.eat(TokenType$1.ELSE)&&(u=this.parseIfStatementChild()),new AST.IfStatement({test:e,consequent:r,alternate:u})}parseReturnStatement(){if(!this.inFunctionBody)throw this.createError(ErrorMessages$1.ILLEGAL_RETURN);if(this.lex(),this.eat(TokenType$1.SEMICOLON)||this.hasLineTerminatorBeforeNext)return new AST.ReturnStatement({expression:null});let e=null;return!this.match(TokenType$1.RBRACE)&&!this.eof()&&(e=this.parseExpression()),this.consumeSemicolon(),new AST.ReturnStatement({expression:e})}parseSwitchStatement(){this.lex(),this.expect(TokenType$1.LPAREN);let e=this.parseExpression();if(this.expect(TokenType$1.RPAREN),this.expect(TokenType$1.LBRACE),this.eat(TokenType$1.RBRACE))return new AST.SwitchStatement({discriminant:e,cases:[]});let r=this.parseSwitchCases();if(this.match(TokenType$1.DEFAULT)){let u=this.parseSwitchDefault(),i=this.parseSwitchCases();if(this.match(TokenType$1.DEFAULT))throw this.createError(ErrorMessages$1.MULTIPLE_DEFAULTS_IN_SWITCH);return this.expect(TokenType$1.RBRACE),new AST.SwitchStatementWithDefault({discriminant:e,preDefaultCases:r,defaultCase:u,postDefaultCases:i})}return this.expect(TokenType$1.RBRACE),new AST.SwitchStatement({discriminant:e,cases:r})}parseSwitchCases(){let e=[];for(;!(this.eof()||this.match(TokenType$1.RBRACE)||this.match(TokenType$1.DEFAULT));)e.push(this.parseSwitchCase());return e}parseSwitchCase(){let e=this.startNode();return this.expect(TokenType$1.CASE),this.finishNode(new AST.SwitchCase({test:this.parseExpression(),consequent:this.parseSwitchCaseBody()}),e)}parseSwitchDefault(){let e=this.startNode();return this.expect(TokenType$1.DEFAULT),this.finishNode(new AST.SwitchDefault({consequent:this.parseSwitchCaseBody()}),e)}parseSwitchCaseBody(){return this.expect(TokenType$1.COLON),this.parseStatementListInSwitchCaseBody()}parseStatementListInSwitchCaseBody(){let e=[];for(;!(this.eof()||this.match(TokenType$1.RBRACE)||this.match(TokenType$1.DEFAULT)||this.match(TokenType$1.CASE));)e.push(this.parseStatementListItem());return e}parseThrowStatement(){let e=this.lex();if(this.hasLineTerminatorBeforeNext)throw this.createErrorWithLocation(e,ErrorMessages$1.NEWLINE_AFTER_THROW);let r=this.parseExpression();return this.consumeSemicolon(),new AST.ThrowStatement({expression:r})}parseTryStatement(){this.lex();let e=this.parseBlock();if(this.match(TokenType$1.CATCH)){let r=this.parseCatchClause();if(this.eat(TokenType$1.FINALLY)){let u=this.parseBlock();return new AST.TryFinallyStatement({body:e,catchClause:r,finalizer:u})}return new AST.TryCatchStatement({body:e,catchClause:r})}if(this.eat(TokenType$1.FINALLY)){let r=this.parseBlock();return new AST.TryFinallyStatement({body:e,catchClause:null,finalizer:r})}throw this.createError(ErrorMessages$1.NO_CATCH_OR_FINALLY)}parseVariableDeclarationStatement(){let e=this.parseVariableDeclaration(!0);return this.consumeSemicolon(),new AST.VariableDeclarationStatement({declaration:e})}parseWhileStatement(){this.lex(),this.expect(TokenType$1.LPAREN);let e=this.parseExpression(),r=this.getIteratorStatementEpilogue();return new AST.WhileStatement({test:e,body:r})}parseWithStatement(){this.lex(),this.expect(TokenType$1.LPAREN);let e=this.parseExpression();this.expect(TokenType$1.RPAREN);let r=this.parseStatement();return new AST.WithStatement({object:e,body:r})}parseCatchClause(){let e=this.startNode();this.lex();let r=null;if(this.match(TokenType$1.LPAREN)){if(this.lex(),this.match(TokenType$1.RPAREN)||this.match(TokenType$1.LPAREN))throw this.createUnexpected(this.lookahead);r=this.parseBindingTarget(),this.expect(TokenType$1.RPAREN)}let u=this.parseBlock();return this.finishNode(new AST.CatchClause({binding:r,body:u}),e)}parseBlock(){let e=this.startNode();this.expect(TokenType$1.LBRACE);let r=[];for(;!this.match(TokenType$1.RBRACE);)r.push(this.parseStatementListItem());return this.expect(TokenType$1.RBRACE),this.finishNode(new AST.Block({statements:r}),e)}parseVariableDeclaration(e){let r=this.startNode(),u=this.lex(),i=u.type===TokenType$1.VAR?"var":u.type===TokenType$1.CONST?"const":"let",n=this.parseVariableDeclaratorList(e);return this.finishNode(new AST.VariableDeclaration({kind:i,declarators:n}),r)}parseVariableDeclaratorList(e){let r=[];do r.push(this.parseVariableDeclarator(e));while(this.eat(TokenType$1.COMMA));return r}parseVariableDeclarator(e){let r=this.startNode();if(this.match(TokenType$1.LPAREN))throw this.createUnexpected(this.lookahead);let u=this.allowIn;this.allowIn=!0;let i=this.parseBindingTarget();this.allowIn=u,e&&i.type!=="BindingIdentifier"&&!this.match(TokenType$1.ASSIGN)&&this.expect(TokenType$1.ASSIGN);let n=null;return this.eat(TokenType$1.ASSIGN)&&(n=this.parseAssignmentExpression()),this.finishNode(new AST.VariableDeclarator({binding:i,init:n}),r)}isolateCoverGrammar(e){let r=this.isBindingElement,u=this.isAssignmentTarget,i=this.firstExprError,n;if(this.isBindingElement=this.isAssignmentTarget=!0,this.firstExprError=null,n=e.call(this),this.firstExprError!==null)throw this.firstExprError;return this.isBindingElement=r,this.isAssignmentTarget=u,this.firstExprError=i,n}inheritCoverGrammar(e){let r=this.isBindingElement,u=this.isAssignmentTarget,i=this.firstExprError,n;return this.isBindingElement=this.isAssignmentTarget=!0,this.firstExprError=null,n=e.call(this),this.isBindingElement=this.isBindingElement&&r,this.isAssignmentTarget=this.isAssignmentTarget&&u,this.firstExprError=i||this.firstExprError,n}parseExpression(){let e=this.startNode(),r=this.parseAssignmentExpression();if(this.match(TokenType$1.COMMA))for(;!this.eof()&&this.match(TokenType$1.COMMA);){this.lex();let u=this.parseAssignmentExpression();r=this.finishNode(new AST.BinaryExpression({left:r,operator:",",right:u}),e)}return r}finishArrowParams(e){let{params:r=null,rest:u=null}=e;if(e.type!==ARROW_EXPRESSION_PARAMS)if(e.type==="IdentifierExpression")r=[this.targetToBinding(this.transformDestructuring(e))];else throw this.createUnexpected(this.lookahead);return this.copyNode(e,new AST.FormalParameters({items:r,rest:u}))}parseArrowExpressionTail(e,r,u){this.expect(TokenType$1.ARROW);let i=this.allowYieldExpression,n=this.allowAwaitExpression,a=this.firstAwaitLocation;this.allowYieldExpression=!1,this.allowAwaitExpression=r,this.firstAwaitLocation=null;let l;if(this.match(TokenType$1.LBRACE)){let o=this.allowIn;this.allowIn=!0,l=this.parseFunctionBody(),this.allowIn=o}else l=this.parseAssignmentExpression();return this.allowYieldExpression=i,this.allowAwaitExpression=n,this.firstAwaitLocation=a,this.finishNode(new AST.ArrowExpression({isAsync:r,params:e,body:l}),u)}parseAssignmentExpression(){return this.isolateCoverGrammar(this.parseAssignmentExpressionOrTarget)}parseAssignmentExpressionOrTarget(){let e=this.startNode();if(this.allowYieldExpression&&this.match(TokenType$1.YIELD))return this.isBindingElement=this.isAssignmentTarget=!1,this.parseYieldExpression();let r=this.parseConditionalExpression();if(!this.hasLineTerminatorBeforeNext&&this.match(TokenType$1.ARROW)){this.isBindingElement=this.isAssignmentTarget=!1,this.firstExprError=null;let l=r.type===ARROW_EXPRESSION_PARAMS&&r.isAsync;return this.parseArrowExpressionTail(this.finishArrowParams(r),l,e)}let u=!1,i=this.lookahead;switch(i.type){case TokenType$1.ASSIGN_BIT_OR:case TokenType$1.ASSIGN_BIT_XOR:case TokenType$1.ASSIGN_BIT_AND:case TokenType$1.ASSIGN_SHL:case TokenType$1.ASSIGN_SHR:case TokenType$1.ASSIGN_SHR_UNSIGNED:case TokenType$1.ASSIGN_ADD:case TokenType$1.ASSIGN_SUB:case TokenType$1.ASSIGN_MUL:case TokenType$1.ASSIGN_DIV:case TokenType$1.ASSIGN_MOD:case TokenType$1.ASSIGN_EXP:u=!0;break}if(u){if(!this.isAssignmentTarget||!isValidSimpleAssignmentTarget(r))throw this.createError(ErrorMessages$1.INVALID_LHS_IN_ASSIGNMENT);r=this.transformDestructuring(r)}else if(i.type===TokenType$1.ASSIGN){if(!this.isAssignmentTarget)throw this.createError(ErrorMessages$1.INVALID_LHS_IN_ASSIGNMENT);r=this.transformDestructuring(r)}else return r;this.lex();let n=this.parseAssignmentExpression();this.firstExprError=null;let a;return i.type===TokenType$1.ASSIGN?a=new AST.AssignmentExpression({binding:r,expression:n}):(a=new AST.CompoundAssignmentExpression({binding:r,operator:i.type.name,expression:n}),this.isBindingElement=this.isAssignmentTarget=!1),this.finishNode(a,e)}targetToBinding(e){if(e===null)return null;switch(e.type){case"AssignmentTargetIdentifier":return this.copyNode(e,new AST.BindingIdentifier({name:e.name}));case"ArrayAssignmentTarget":return this.copyNode(e,new AST.ArrayBinding({elements:e.elements.map(r=>this.targetToBinding(r)),rest:this.targetToBinding(e.rest)}));case"ObjectAssignmentTarget":return this.copyNode(e,new AST.ObjectBinding({properties:e.properties.map(r=>this.targetToBinding(r)),rest:this.targetToBinding(e.rest)}));case"AssignmentTargetPropertyIdentifier":return this.copyNode(e,new AST.BindingPropertyIdentifier({binding:this.targetToBinding(e.binding),init:e.init}));case"AssignmentTargetPropertyProperty":return this.copyNode(e,new AST.BindingPropertyProperty({name:e.name,binding:this.targetToBinding(e.binding)}));case"AssignmentTargetWithDefault":return this.copyNode(e,new AST.BindingWithDefault({binding:this.targetToBinding(e.binding),init:e.init}))}throw new Error("Not reached")}transformDestructuring(e){switch(e.type){case"DataProperty":return this.copyNode(e,new AST.AssignmentTargetPropertyProperty({name:e.name,binding:this.transformDestructuringWithDefault(e.expression)}));case"ShorthandProperty":return this.copyNode(e,new AST.AssignmentTargetPropertyIdentifier({binding:this.copyNode(e,new AST.AssignmentTargetIdentifier({name:e.name.name})),init:null}));case"ObjectExpression":{let r=e.properties.length>0?e.properties[e.properties.length-1]:void 0;return r!=null&&r.type==="SpreadProperty"?this.copyNode(e,new AST.ObjectAssignmentTarget({properties:e.properties.slice(0,-1).map(u=>u&&this.transformDestructuringWithDefault(u)),rest:this.transformDestructuring(r.expression)})):this.copyNode(e,new AST.ObjectAssignmentTarget({properties:e.properties.map(u=>u&&this.transformDestructuringWithDefault(u)),rest:null}))}case"ArrayExpression":{let r=e.elements[e.elements.length-1];return r!=null&&r.type==="SpreadElement"?this.copyNode(e,new AST.ArrayAssignmentTarget({elements:e.elements.slice(0,-1).map(u=>u&&this.transformDestructuringWithDefault(u)),rest:this.copyNode(r.expression,this.transformDestructuring(r.expression))})):this.copyNode(e,new AST.ArrayAssignmentTarget({elements:e.elements.map(u=>u&&this.transformDestructuringWithDefault(u)),rest:null}))}case"IdentifierExpression":return this.copyNode(e,new AST.AssignmentTargetIdentifier({name:e.name}));case"StaticPropertyName":return this.copyNode(e,new AST.AssignmentTargetIdentifier({name:e.value}));case"ComputedMemberExpression":return this.copyNode(e,new AST.ComputedMemberAssignmentTarget({object:e.object,expression:e.expression}));case"StaticMemberExpression":return this.copyNode(e,new AST.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")}transformDestructuringWithDefault(e){switch(e.type){case"AssignmentExpression":return this.copyNode(e,new AST.AssignmentTargetWithDefault({binding:this.transformDestructuring(e.binding),init:e.expression}))}return this.transformDestructuring(e)}lookaheadAssignmentExpression(){if(this.matchIdentifier())return!0;switch(this.lookahead.type){case TokenType$1.ADD:case TokenType$1.ASSIGN_DIV:case TokenType$1.BIT_NOT:case TokenType$1.CLASS:case TokenType$1.DEC:case TokenType$1.DELETE:case TokenType$1.DIV:case TokenType$1.FALSE:case TokenType$1.FUNCTION:case TokenType$1.INC:case TokenType$1.LBRACE:case TokenType$1.LBRACK:case TokenType$1.LPAREN:case TokenType$1.NEW:case TokenType$1.NOT:case TokenType$1.NULL:case TokenType$1.NUMBER:case TokenType$1.STRING:case TokenType$1.SUB:case TokenType$1.SUPER:case TokenType$1.THIS:case TokenType$1.TRUE:case TokenType$1.TYPEOF:case TokenType$1.VOID:case TokenType$1.TEMPLATE:return!0}return!1}parseYieldExpression(){let e=this.startNode();if(this.lex(),this.hasLineTerminatorBeforeNext)return this.finishNode(new AST.YieldExpression({expression:null}),e);let r=!!this.eat(TokenType$1.MUL),u=null;(r||this.lookaheadAssignmentExpression())&&(u=this.parseAssignmentExpression());let i=r?AST.YieldGeneratorExpression:AST.YieldExpression;return this.finishNode(new i({expression:u}),e)}parseConditionalExpression(){let e=this.startNode(),r=this.parseBinaryExpression();if(this.firstExprError)return r;if(this.eat(TokenType$1.CONDITIONAL)){this.isBindingElement=this.isAssignmentTarget=!1;let u=this.allowIn;this.allowIn=!0;let i=this.isolateCoverGrammar(this.parseAssignmentExpression);this.allowIn=u,this.expect(TokenType$1.COLON);let n=this.isolateCoverGrammar(this.parseAssignmentExpression);return this.finishNode(new AST.ConditionalExpression({test:r,consequent:i,alternate:n}),e)}return r}isBinaryOperator(e){switch(e){case TokenType$1.OR:case TokenType$1.AND:case TokenType$1.BIT_OR:case TokenType$1.BIT_XOR:case TokenType$1.BIT_AND:case TokenType$1.EQ:case TokenType$1.NE:case TokenType$1.EQ_STRICT:case TokenType$1.NE_STRICT:case TokenType$1.LT:case TokenType$1.GT:case TokenType$1.LTE:case TokenType$1.GTE:case TokenType$1.INSTANCEOF:case TokenType$1.SHL:case TokenType$1.SHR:case TokenType$1.SHR_UNSIGNED:case TokenType$1.ADD:case TokenType$1.SUB:case TokenType$1.MUL:case TokenType$1.DIV:case TokenType$1.MOD:return!0;case TokenType$1.IN:return this.allowIn;default:return!1}}parseBinaryExpression(){let e=this.startNode(),r=this.parseExponentiationExpression();if(this.firstExprError)return r;let u=this.lookahead.type;if(!this.isBinaryOperator(u))return r;this.isBindingElement=this.isAssignmentTarget=!1,this.lex();let i=[];i.push({startState:e,left:r,operator:u,precedence:BinaryPrecedence$1[u.name]}),e=this.startNode();let n=this.isolateCoverGrammar(this.parseExponentiationExpression);for(u=this.lookahead.type;this.isBinaryOperator(u);){let a=BinaryPrecedence$1[u.name];for(;i.length&&a<=i[i.length-1].precedence;){let l=i[i.length-1],o=l.operator;r=l.left,i.pop(),e=l.startState,n=this.finishNode(new AST.BinaryExpression({left:r,operator:o.name,right:n}),e)}this.lex(),i.push({startState:e,left:n,operator:u,precedence:a}),e=this.startNode(),n=this.isolateCoverGrammar(this.parseExponentiationExpression),u=this.lookahead.type}return i.reduceRight((a,l)=>this.finishNode(new AST.BinaryExpression({left:l.left,operator:l.operator.name,right:a}),l.startState),n)}parseExponentiationExpression(){let e=this.startNode(),r=this.lookahead.type===TokenType$1.LPAREN,u=this.parseUnaryExpression();if(this.lookahead.type!==TokenType$1.EXP)return u;if(u.type==="UnaryExpression"&&!r)throw this.createError(ErrorMessages$1.INVALID_EXPONENTIATION_LHS);this.lex(),this.isBindingElement=this.isAssignmentTarget=!1;let i=this.isolateCoverGrammar(this.parseExponentiationExpression);return this.finishNode(new AST.BinaryExpression({left:u,operator:"**",right:i}),e)}parseUnaryExpression(){if(this.lookahead.type.klass!==TokenClass$1.Punctuator&&this.lookahead.type.klass!==TokenClass$1.Keyword)return this.parseUpdateExpression();let e=this.startNode();if(this.allowAwaitExpression&&this.eat(TokenType$1.AWAIT)){this.isBindingElement=this.isAssignmentTarget=!1;let i=this.isolateCoverGrammar(this.parseUnaryExpression);return this.finishNode(new AST.AwaitExpression({expression:i}),e)}let r=this.lookahead;if(!isPrefixOperator(r))return this.parseUpdateExpression();this.lex(),this.isBindingElement=this.isAssignmentTarget=!1;let u;if(isUpdateOperator(r)){let i=this.getLocation(),n=this.isolateCoverGrammar(this.parseUnaryExpression);if(!isValidSimpleAssignmentTarget(n))throw this.createErrorWithLocation(i,ErrorMessages$1.INVALID_UPDATE_OPERAND);n=this.transformDestructuring(n),u=new AST.UpdateExpression({isPrefix:!0,operator:r.value,operand:n})}else{let i=this.isolateCoverGrammar(this.parseUnaryExpression);u=new AST.UnaryExpression({operator:r.value,operand:i})}return this.finishNode(u,e)}parseUpdateExpression(){let e=this.getLocation(),r=this.startNode(),u=this.parseLeftHandSideExpression({allowCall:!0});if(this.firstExprError||this.hasLineTerminatorBeforeNext)return u;let i=this.lookahead;if(!isUpdateOperator(i))return u;if(this.lex(),this.isBindingElement=this.isAssignmentTarget=!1,!isValidSimpleAssignmentTarget(u))throw this.createErrorWithLocation(e,ErrorMessages$1.INVALID_UPDATE_OPERAND);return u=this.transformDestructuring(u),this.finishNode(new AST.UpdateExpression({isPrefix:!1,operator:i.value,operand:u}),r)}parseLeftHandSideExpression({allowCall:e}){let r=this.startNode(),u=this.allowIn;this.allowIn=!0;let i,n=this.lookahead;if(this.eat(TokenType$1.SUPER))if(this.isBindingElement=!1,this.isAssignmentTarget=!1,i=this.finishNode(new AST.Super,r),this.match(TokenType$1.LPAREN))if(e)i=this.finishNode(new AST.CallExpression({callee:i,arguments:this.parseArgumentList().args}),r);else throw this.createUnexpected(n);else if(this.match(TokenType$1.LBRACK))i=this.finishNode(new AST.ComputedMemberExpression({object:i,expression:this.parseComputedMember()}),r),this.isAssignmentTarget=!0;else if(this.match(TokenType$1.PERIOD))i=this.finishNode(new AST.StaticMemberExpression({object:i,property:this.parseStaticMember()}),r),this.isAssignmentTarget=!0;else throw this.createUnexpected(n);else if(this.match(TokenType$1.NEW))this.isBindingElement=this.isAssignmentTarget=!1,i=this.parseNewExpression();else if(this.match(TokenType$1.ASYNC)){if(i=this.parsePrimaryExpression(),i.type==="IdentifierExpression"&&e&&!this.hasLineTerminatorBeforeNext){if(this.matchIdentifier()){let a=this.startNode(),l=this.allowAwaitExpression;this.allowAwaitExpression=!0;let o=this.parseBindingIdentifier();return this.allowAwaitExpression=l,this.ensureArrow(),this.finishNode({type:ARROW_EXPRESSION_PARAMS,params:[o],rest:null,isAsync:!0},a)}if(this.match(TokenType$1.LPAREN)){let a=this.startNode(),l=this.firstAwaitLocation;this.firstAwaitLocation=null;let{args:o,locationFollowingFirstSpread:c}=this.parseArgumentList();if(this.isBindingElement&&!this.hasLineTerminatorBeforeNext&&this.match(TokenType$1.ARROW)){if(c!==null)throw this.createErrorWithLocation(c,ErrorMessages$1.UNEXPECTED_TOKEN(","));if(this.firstAwaitLocation!==null)throw this.createErrorWithLocation(this.firstAwaitLocation,ErrorMessages$1.NO_AWAIT_IN_ASYNC_PARAMS);let A=null;if(o.length>0&&o[o.length-1].type==="SpreadElement"){if(A=this.targetToBinding(this.transformDestructuringWithDefault(o[o.length-1].expression)),A.init!=null)throw this.createError(ErrorMessages$1.UNEXPECTED_REST_PARAMETERS_INITIALIZATION);o=o.slice(0,-1)}let d=o.map(m=>this.targetToBinding(this.transformDestructuringWithDefault(m)));return this.finishNode({type:ARROW_EXPRESSION_PARAMS,params:d,rest:A,isAsync:!0},a)}this.firstAwaitLocation=l||this.firstAwaitLocation,this.isBindingElement=this.isAssignmentTarget=!1,i=this.finishNode(new AST.CallExpression({callee:i,arguments:o}),r)}}}else if(i=this.parsePrimaryExpression(),this.firstExprError)return i;for(;;)if(e&&this.match(TokenType$1.LPAREN))this.isBindingElement=this.isAssignmentTarget=!1,i=this.finishNode(new AST.CallExpression({callee:i,arguments:this.parseArgumentList().args}),r);else if(this.match(TokenType$1.LBRACK))this.isBindingElement=!1,this.isAssignmentTarget=!0,i=this.finishNode(new AST.ComputedMemberExpression({object:i,expression:this.parseComputedMember()}),r);else if(this.match(TokenType$1.PERIOD))this.isBindingElement=!1,this.isAssignmentTarget=!0,i=this.finishNode(new AST.StaticMemberExpression({object:i,property:this.parseStaticMember()}),r);else if(this.match(TokenType$1.TEMPLATE))this.isBindingElement=this.isAssignmentTarget=!1,i=this.finishNode(new AST.TemplateExpression({tag:i,elements:this.parseTemplateElements()}),r);else break;return this.allowIn=u,i}parseTemplateElements(){let e=this.startNode(),r=this.lookahead;if(r.tail)return this.lex(),[this.finishNode(new AST.TemplateElement({rawValue:r.slice.text.slice(1,-1)}),e)];let u=[this.finishNode(new AST.TemplateElement({rawValue:this.lex().slice.text.slice(1,-2)}),e)];for(;;){if(u.push(this.parseExpression()),!this.match(TokenType$1.RBRACE))throw this.createILLEGAL();if(this.index=this.startIndex,this.line=this.startLine,this.lineStart=this.startLineStart,this.lookahead=this.scanTemplateElement(),e=this.startNode(),r=this.lex(),r.tail)return u.push(this.finishNode(new AST.TemplateElement({rawValue:r.slice.text.slice(1,-1)}),e)),u;u.push(this.finishNode(new AST.TemplateElement({rawValue:r.slice.text.slice(1,-2)}),e))}}parseStaticMember(){if(this.lex(),this.lookahead.type.klass.isIdentifierName)return this.lex().value;throw this.createUnexpected(this.lookahead)}parseComputedMember(){this.lex();let e=this.parseExpression();return this.expect(TokenType$1.RBRACK),e}parseNewExpression(){let e=this.startNode();if(this.lex(),this.eat(TokenType$1.PERIOD))return this.expectContextualKeyword("target"),this.finishNode(new AST.NewTargetExpression,e);let r=this.isolateCoverGrammar(()=>this.parseLeftHandSideExpression({allowCall:!1}));return this.finishNode(new AST.NewExpression({callee:r,arguments:this.match(TokenType$1.LPAREN)?this.parseArgumentList().args:[]}),e)}parseRegexFlags(e){let r=!1,u=!1,i=!1,n=!1,a=!1,l=!1;for(let o=0;on&&this.transformDestructuringWithDefault(n)),rest:i}),r);if(this.firstExprError){let n=u[u.length-1];return n!=null&&n.type==="SpreadElement"?this.finishNode(new AST.ArrayAssignmentTarget({elements:u.slice(0,-1).map(a=>a&&this.transformDestructuringWithDefault(a)),rest:this.transformDestructuring(n.expression)}),r):this.finishNode(new AST.ArrayAssignmentTarget({elements:u.map(a=>a&&this.transformDestructuringWithDefault(a)),rest:null}),r)}return this.finishNode(new AST.ArrayExpression({elements:u}),r)}parseObjectExpression(){let e=this.startNode();this.lex();let r=[];for(;!this.match(TokenType$1.RBRACE);){let u=!1;if(this.match(TokenType$1.ELLIPSIS)){u=!0;let i=this.parseSpreadPropertyDefinition();r.push(i)}else{let i=this.inheritCoverGrammar(this.parsePropertyDefinition);r.push(i)}this.match(TokenType$1.RBRACE)||(this.expect(TokenType$1.COMMA),u&&(this.isBindingElement=this.isAssignmentTarget=!1))}if(this.expect(TokenType$1.RBRACE),this.firstExprError){if(!this.isAssignmentTarget)throw this.createError(ErrorMessages$1.INVALID_LHS_IN_BINDING);let u=r[r.length-1];return u!=null&&u.type==="SpreadProperty"?this.finishNode(new AST.ObjectAssignmentTarget({properties:r.slice(0,-1).map(i=>this.transformDestructuringWithDefault(i)),rest:this.transformDestructuring(u.expression)}),e):this.finishNode(new AST.ObjectAssignmentTarget({properties:r.map(i=>this.transformDestructuringWithDefault(i)),rest:null}),e)}return this.finishNode(new AST.ObjectExpression({properties:r}),e)}parseSpreadPropertyDefinition(){let e=this.startNode();this.expect(TokenType$1.ELLIPSIS);let r=this.parseAssignmentExpression();return isValidSimpleAssignmentTarget(r)?r.type!=="IdentifierExpression"&&(this.isBindingElement=!1):this.isBindingElement=this.isAssignmentTarget=!1,this.finishNode(new AST.SpreadProperty({expression:r}),e)}parsePropertyDefinition(){let e=this.getLocation(),r=this.startNode(),u=this.lookahead,{methodOrKey:i,kind:n}=this.parseMethodDefinition();switch(n){case"method":return this.isBindingElement=this.isAssignmentTarget=!1,i;case"identifier":if(u.value==="await"&&this.firstAwaitLocation==null&&(this.firstAwaitLocation=this.getLocation()),this.eat(TokenType$1.ASSIGN)){if(this.allowYieldExpression&&u.value==="yield")throw this.createError(ErrorMessages$1.ILLEGAL_YIELD_IDENTIFIER);if(this.allowAwaitExpression&&u.value==="await")throw this.createError(ErrorMessages$1.ILLEGAL_AWAIT_IDENTIFIER);let l=this.isolateCoverGrammar(this.parseAssignmentExpression);return this.firstExprError=this.createErrorWithLocation(e,ErrorMessages$1.ILLEGAL_PROPERTY),this.finishNode(new AST.AssignmentTargetPropertyIdentifier({binding:this.transformDestructuring(i),init:l}),r)}else if(!this.match(TokenType$1.COLON)){if(this.allowYieldExpression&&u.value==="yield")throw this.createError(ErrorMessages$1.ILLEGAL_YIELD_IDENTIFIER);if(this.allowAwaitExpression&&u.value==="await")throw this.createError(ErrorMessages$1.ILLEGAL_AWAIT_IDENTIFIER);if(u.type===TokenType$1.IDENTIFIER||u.value==="let"||u.value==="yield"||u.value==="async"||u.value==="await")return this.finishNode(new AST.ShorthandProperty({name:this.finishNode(new AST.IdentifierExpression({name:i.value}),r)}),r);throw this.createUnexpected(u)}}this.expect(TokenType$1.COLON);let a=this.inheritCoverGrammar(this.parseAssignmentExpressionOrTarget);return this.firstExprError?this.finishNode(new AST.AssignmentTargetPropertyProperty({name:i,binding:a}),r):this.finishNode(new AST.DataProperty({name:i,expression:a}),r)}parsePropertyName(){let e=this.lookahead,r=this.startNode();if(this.eof())throw this.createUnexpected(e);switch(e.type){case TokenType$1.STRING:return{name:this.finishNode(new AST.StaticPropertyName({value:this.parseStringLiteral().value}),r),binding:null};case TokenType$1.NUMBER:{let i=this.parseNumericLiteral();return{name:this.finishNode(new AST.StaticPropertyName({value:`${i.type==="LiteralInfinityExpression"?1/0:i.value}`}),r),binding:null}}case TokenType$1.LBRACK:{this.lex();let i=this.parseAssignmentExpression();return this.expect(TokenType$1.RBRACK),{name:this.finishNode(new AST.ComputedPropertyName({expression:i}),r),binding:null}}}let u=this.parseIdentifierName();return{name:this.finishNode(new AST.StaticPropertyName({value:u}),r),binding:this.finishNode(new AST.BindingIdentifier({name:u}),r)}}lookaheadPropertyName(){switch(this.lookahead.type){case TokenType$1.NUMBER:case TokenType$1.STRING:case TokenType$1.LBRACK:return!0;default:return this.lookahead.type.klass.isIdentifierName}}parseMethodDefinition(){let e=this.lookahead,r=this.startNode(),u=this.saveLexerState(),i=!!this.eat(TokenType$1.ASYNC);i&&this.hasLineTerminatorBeforeNext&&(i=!1,this.restoreLexerState(u));let n=!!this.eat(TokenType$1.MUL);i&&!this.lookaheadPropertyName()&&(i=!1,n=!1,this.restoreLexerState(u));let{name:a}=this.parsePropertyName();if(!n&&!i&&e.type===TokenType$1.IDENTIFIER&&e.value.length===3){if(e.value==="get"&&this.lookaheadPropertyName()&&!e.escaped){({name:a}=this.parsePropertyName()),this.expect(TokenType$1.LPAREN),this.expect(TokenType$1.RPAREN);let l=this.allowYieldExpression,o=this.allowAwaitExpression,c=this.firstAwaitLocation;this.allowYieldExpression=!1,this.allowAwaitExpression=!1,this.firstAwaitLocation=null;let A=this.parseFunctionBody();return this.allowYieldExpression=l,this.allowAwaitExpression=o,this.firstAwaitLocation=c,{methodOrKey:this.finishNode(new AST.Getter({name:a,body:A}),r),kind:"method"}}else if(e.value==="set"&&this.lookaheadPropertyName()&&!e.escaped){({name:a}=this.parsePropertyName()),this.expect(TokenType$1.LPAREN);let l=this.allowYieldExpression,o=this.allowAwaitExpression,c=this.firstAwaitLocation;this.allowYieldExpression=!1,this.allowAwaitExpression=!1,this.firstAwaitLocation=null;let A=this.parseBindingElement();this.expect(TokenType$1.RPAREN);let d=this.parseFunctionBody();return this.allowYieldExpression=l,this.allowAwaitExpression=o,this.firstAwaitLocation=c,{methodOrKey:this.finishNode(new AST.Setter({name:a,param:A,body:d}),r),kind:"method"}}}if(i){let l=this.allowYieldExpression,o=this.allowAwaitExpression;this.allowYieldExpression=n,this.allowAwaitExpression=!0;let c=this.parseParams();this.allowYieldExpression=n,this.allowAwaitExpression=!0;let A=this.parseFunctionBody();return this.allowYieldExpression=l,this.allowAwaitExpression=o,{methodOrKey:this.finishNode(new AST.Method({isAsync:i,isGenerator:n,name:a,params:c,body:A}),r),kind:"method"}}if(this.match(TokenType$1.LPAREN)){let l=this.allowYieldExpression,o=this.allowAwaitExpression,c=this.firstAwaitLocation;this.allowYieldExpression=n,this.allowAwaitExpression=!1,this.firstAwaitLocation=null;let A=this.parseParams(),d=this.parseFunctionBody();return this.allowYieldExpression=l,this.allowAwaitExpression=o,this.firstAwaitLocation=c,{methodOrKey:this.finishNode(new AST.Method({isAsync:i,isGenerator:n,name:a,params:A,body:d}),r),kind:"method"}}if(n&&this.match(TokenType$1.COLON))throw this.createUnexpected(this.lookahead);return{methodOrKey:a,kind:e.type.klass.isIdentifierName?"identifier":"property",escaped:e.escaped}}parseClass({isExpr:e,inDefault:r}){let u=this.startNode();this.lex();let i=null,n=null;if(this.matchIdentifier())i=this.parseBindingIdentifier();else if(!e)if(r)i=new AST.BindingIdentifier({name:"*default*"});else throw this.createUnexpected(this.lookahead);this.eat(TokenType$1.EXTENDS)&&(n=this.isolateCoverGrammar(()=>this.parseLeftHandSideExpression({allowCall:!0}))),this.expect(TokenType$1.LBRACE);let a=[];for(;!this.eat(TokenType$1.RBRACE);){if(this.eat(TokenType$1.SEMICOLON))continue;let l=!1,o=this.startNode(),{methodOrKey:c,kind:A,escaped:d}=this.parseMethodDefinition();if(A==="identifier"&&c.value==="static"&&!d&&(l=!0,{methodOrKey:c,kind:A}=this.parseMethodDefinition()),A==="method")a.push(this.finishNode(new AST.ClassElement({isStatic:l,method:c}),o));else throw this.createError("Only methods are allowed in classes")}return this.finishNode(new(e?AST.ClassExpression:AST.ClassDeclaration)({name:i,super:n,elements:a}),u)}parseFunction({isExpr:e,inDefault:r,allowGenerator:u,isAsync:i,startState:n=this.startNode()}){this.lex();let a=null,l=u&&!!this.eat(TokenType$1.MUL),o=this.allowYieldExpression,c=this.allowAwaitExpression,A=this.firstAwaitLocation;if(e&&(this.allowYieldExpression=l,this.allowAwaitExpression=i),!this.match(TokenType$1.LPAREN))a=this.parseBindingIdentifier();else if(!e)if(r)a=new AST.BindingIdentifier({name:"*default*"});else throw this.createUnexpected(this.lookahead);this.allowYieldExpression=l,this.allowAwaitExpression=i,this.firstAwaitLocation=null;let d=this.parseParams(),m=this.parseFunctionBody();return this.allowYieldExpression=o,this.allowAwaitExpression=c,this.firstAwaitLocation=A,this.finishNode(new(e?AST.FunctionExpression:AST.FunctionDeclaration)({isAsync:i,isGenerator:l,name:a,params:d,body:m}),n)}parseArrayBinding(){let e=this.startNode();this.expect(TokenType$1.LBRACK);let r=[],u=null;for(;!this.match(TokenType$1.RBRACK);){let i;if(this.eat(TokenType$1.COMMA))i=null;else{if(this.eat(TokenType$1.ELLIPSIS)){u=this.parseBindingTarget();break}else i=this.parseBindingElement();this.match(TokenType$1.RBRACK)||this.expect(TokenType$1.COMMA)}r.push(i)}return this.expect(TokenType$1.RBRACK),this.finishNode(new AST.ArrayBinding({elements:r,rest:u}),e)}parseBindingProperty(){let e=this.startNode(),r=this.matchIdentifier(),u=this.lookahead,{name:i,binding:n}=this.parsePropertyName();if(r&&i.type==="StaticPropertyName"&&!this.match(TokenType$1.COLON)){if(this.allowYieldExpression&&u.value==="yield")throw this.createError(ErrorMessages$1.ILLEGAL_YIELD_IDENTIFIER);if(this.allowAwaitExpression&&u.value==="await")throw this.createError(ErrorMessages$1.ILLEGAL_AWAIT_IDENTIFIER);let a=null;return this.eat(TokenType$1.ASSIGN)&&(a=this.parseAssignmentExpression()),this.finishNode(new AST.BindingPropertyIdentifier({binding:n,init:a}),e)}return this.expect(TokenType$1.COLON),n=this.parseBindingElement(),this.finishNode(new AST.BindingPropertyProperty({name:i,binding:n}),e)}parseObjectBinding(){let e=this.startNode();this.expect(TokenType$1.LBRACE);let r=[],u=null;for(;!this.match(TokenType$1.RBRACE);){if(this.eat(TokenType$1.ELLIPSIS)){u=this.parseBindingIdentifier();break}r.push(this.parseBindingProperty()),this.match(TokenType$1.RBRACE)||this.expect(TokenType$1.COMMA)}return this.expect(TokenType$1.RBRACE),this.finishNode(new AST.ObjectBinding({properties:r,rest:u}),e)}parseBindingTarget(){if(this.matchIdentifier())return this.parseBindingIdentifier();switch(this.lookahead.type){case TokenType$1.LBRACK:return this.parseArrayBinding();case TokenType$1.LBRACE:return this.parseObjectBinding()}throw this.createUnexpected(this.lookahead)}parseBindingElement(){let e=this.startNode(),r=this.parseBindingTarget();if(this.eat(TokenType$1.ASSIGN)){let u=this.parseAssignmentExpression();r=this.finishNode(new AST.BindingWithDefault({binding:r,init:u}),e)}return r}parseParam(){let e=this.inParameter;this.inParameter=!0;let r=this.parseBindingElement();return this.inParameter=e,r}parseParams(){let e=this.startNode();this.expect(TokenType$1.LPAREN);let r=[],u=null;for(;!this.match(TokenType$1.RPAREN);){if(this.eat(TokenType$1.ELLIPSIS)){if(u=this.parseBindingTarget(),this.lookahead.type===TokenType$1.ASSIGN)throw this.createError(ErrorMessages$1.UNEXPECTED_REST_PARAMETERS_INITIALIZATION);if(this.match(TokenType$1.COMMA))throw this.createError(ErrorMessages$1.UNEXPECTED_COMMA_AFTER_REST);break}if(r.push(this.parseParam()),this.match(TokenType$1.RPAREN))break;this.expect(TokenType$1.COMMA)}return this.expect(TokenType$1.RPAREN),this.finishNode(new AST.FormalParameters({items:r,rest:u}),e)}}var parser={GenericParser:GenericParser$1};const director$1={ArrayAssignmentTarget(s,e){return s.reduceArrayAssignmentTarget(e,{elements:e.elements.map(r=>r&&this[r.type](s,r)),rest:e.rest&&this[e.rest.type](s,e.rest)})},ArrayBinding(s,e){return s.reduceArrayBinding(e,{elements:e.elements.map(r=>r&&this[r.type](s,r)),rest:e.rest&&this[e.rest.type](s,e.rest)})},ArrayExpression(s,e){return s.reduceArrayExpression(e,{elements:e.elements.map(r=>r&&this[r.type](s,r))})},ArrowExpression(s,e){return s.reduceArrowExpression(e,{params:this.FormalParameters(s,e.params),body:this[e.body.type](s,e.body)})},AssignmentExpression(s,e){return s.reduceAssignmentExpression(e,{binding:this[e.binding.type](s,e.binding),expression:this[e.expression.type](s,e.expression)})},AssignmentTargetIdentifier(s,e){return s.reduceAssignmentTargetIdentifier(e)},AssignmentTargetPropertyIdentifier(s,e){return s.reduceAssignmentTargetPropertyIdentifier(e,{binding:this.AssignmentTargetIdentifier(s,e.binding),init:e.init&&this[e.init.type](s,e.init)})},AssignmentTargetPropertyProperty(s,e){return s.reduceAssignmentTargetPropertyProperty(e,{name:this[e.name.type](s,e.name),binding:this[e.binding.type](s,e.binding)})},AssignmentTargetWithDefault(s,e){return s.reduceAssignmentTargetWithDefault(e,{binding:this[e.binding.type](s,e.binding),init:this[e.init.type](s,e.init)})},AwaitExpression(s,e){return s.reduceAwaitExpression(e,{expression:this[e.expression.type](s,e.expression)})},BinaryExpression(s,e){return s.reduceBinaryExpression(e,{left:this[e.left.type](s,e.left),right:this[e.right.type](s,e.right)})},BindingIdentifier(s,e){return s.reduceBindingIdentifier(e)},BindingPropertyIdentifier(s,e){return s.reduceBindingPropertyIdentifier(e,{binding:this.BindingIdentifier(s,e.binding),init:e.init&&this[e.init.type](s,e.init)})},BindingPropertyProperty(s,e){return s.reduceBindingPropertyProperty(e,{name:this[e.name.type](s,e.name),binding:this[e.binding.type](s,e.binding)})},BindingWithDefault(s,e){return s.reduceBindingWithDefault(e,{binding:this[e.binding.type](s,e.binding),init:this[e.init.type](s,e.init)})},Block(s,e){return s.reduceBlock(e,{statements:e.statements.map(r=>this[r.type](s,r))})},BlockStatement(s,e){return s.reduceBlockStatement(e,{block:this.Block(s,e.block)})},BreakStatement(s,e){return s.reduceBreakStatement(e)},CallExpression(s,e){return s.reduceCallExpression(e,{callee:this[e.callee.type](s,e.callee),arguments:e.arguments.map(r=>this[r.type](s,r))})},CatchClause(s,e){return s.reduceCatchClause(e,{binding:e.binding&&this[e.binding.type](s,e.binding),body:this.Block(s,e.body)})},ClassDeclaration(s,e){return s.reduceClassDeclaration(e,{name:this.BindingIdentifier(s,e.name),super:e.super&&this[e.super.type](s,e.super),elements:e.elements.map(r=>this.ClassElement(s,r))})},ClassElement(s,e){return s.reduceClassElement(e,{method:this[e.method.type](s,e.method)})},ClassExpression(s,e){return s.reduceClassExpression(e,{name:e.name&&this.BindingIdentifier(s,e.name),super:e.super&&this[e.super.type](s,e.super),elements:e.elements.map(r=>this.ClassElement(s,r))})},CompoundAssignmentExpression(s,e){return s.reduceCompoundAssignmentExpression(e,{binding:this[e.binding.type](s,e.binding),expression:this[e.expression.type](s,e.expression)})},ComputedMemberAssignmentTarget(s,e){return s.reduceComputedMemberAssignmentTarget(e,{object:this[e.object.type](s,e.object),expression:this[e.expression.type](s,e.expression)})},ComputedMemberExpression(s,e){return s.reduceComputedMemberExpression(e,{object:this[e.object.type](s,e.object),expression:this[e.expression.type](s,e.expression)})},ComputedPropertyName(s,e){return s.reduceComputedPropertyName(e,{expression:this[e.expression.type](s,e.expression)})},ConditionalExpression(s,e){return s.reduceConditionalExpression(e,{test:this[e.test.type](s,e.test),consequent:this[e.consequent.type](s,e.consequent),alternate:this[e.alternate.type](s,e.alternate)})},ContinueStatement(s,e){return s.reduceContinueStatement(e)},DataProperty(s,e){return s.reduceDataProperty(e,{name:this[e.name.type](s,e.name),expression:this[e.expression.type](s,e.expression)})},DebuggerStatement(s,e){return s.reduceDebuggerStatement(e)},Directive(s,e){return s.reduceDirective(e)},DoWhileStatement(s,e){return s.reduceDoWhileStatement(e,{body:this[e.body.type](s,e.body),test:this[e.test.type](s,e.test)})},EmptyStatement(s,e){return s.reduceEmptyStatement(e)},Export(s,e){return s.reduceExport(e,{declaration:this[e.declaration.type](s,e.declaration)})},ExportAllFrom(s,e){return s.reduceExportAllFrom(e)},ExportDefault(s,e){return s.reduceExportDefault(e,{body:this[e.body.type](s,e.body)})},ExportFrom(s,e){return s.reduceExportFrom(e,{namedExports:e.namedExports.map(r=>this.ExportFromSpecifier(s,r))})},ExportFromSpecifier(s,e){return s.reduceExportFromSpecifier(e)},ExportLocalSpecifier(s,e){return s.reduceExportLocalSpecifier(e,{name:this.IdentifierExpression(s,e.name)})},ExportLocals(s,e){return s.reduceExportLocals(e,{namedExports:e.namedExports.map(r=>this.ExportLocalSpecifier(s,r))})},ExpressionStatement(s,e){return s.reduceExpressionStatement(e,{expression:this[e.expression.type](s,e.expression)})},ForAwaitStatement(s,e){return s.reduceForAwaitStatement(e,{left:this[e.left.type](s,e.left),right:this[e.right.type](s,e.right),body:this[e.body.type](s,e.body)})},ForInStatement(s,e){return s.reduceForInStatement(e,{left:this[e.left.type](s,e.left),right:this[e.right.type](s,e.right),body:this[e.body.type](s,e.body)})},ForOfStatement(s,e){return s.reduceForOfStatement(e,{left:this[e.left.type](s,e.left),right:this[e.right.type](s,e.right),body:this[e.body.type](s,e.body)})},ForStatement(s,e){return s.reduceForStatement(e,{init:e.init&&this[e.init.type](s,e.init),test:e.test&&this[e.test.type](s,e.test),update:e.update&&this[e.update.type](s,e.update),body:this[e.body.type](s,e.body)})},FormalParameters(s,e){return s.reduceFormalParameters(e,{items:e.items.map(r=>this[r.type](s,r)),rest:e.rest&&this[e.rest.type](s,e.rest)})},FunctionBody(s,e){return s.reduceFunctionBody(e,{directives:e.directives.map(r=>this.Directive(s,r)),statements:e.statements.map(r=>this[r.type](s,r))})},FunctionDeclaration(s,e){return s.reduceFunctionDeclaration(e,{name:this.BindingIdentifier(s,e.name),params:this.FormalParameters(s,e.params),body:this.FunctionBody(s,e.body)})},FunctionExpression(s,e){return s.reduceFunctionExpression(e,{name:e.name&&this.BindingIdentifier(s,e.name),params:this.FormalParameters(s,e.params),body:this.FunctionBody(s,e.body)})},Getter(s,e){return s.reduceGetter(e,{name:this[e.name.type](s,e.name),body:this.FunctionBody(s,e.body)})},IdentifierExpression(s,e){return s.reduceIdentifierExpression(e)},IfStatement(s,e){return s.reduceIfStatement(e,{test:this[e.test.type](s,e.test),consequent:this[e.consequent.type](s,e.consequent),alternate:e.alternate&&this[e.alternate.type](s,e.alternate)})},Import(s,e){return s.reduceImport(e,{defaultBinding:e.defaultBinding&&this.BindingIdentifier(s,e.defaultBinding),namedImports:e.namedImports.map(r=>this.ImportSpecifier(s,r))})},ImportNamespace(s,e){return s.reduceImportNamespace(e,{defaultBinding:e.defaultBinding&&this.BindingIdentifier(s,e.defaultBinding),namespaceBinding:this.BindingIdentifier(s,e.namespaceBinding)})},ImportSpecifier(s,e){return s.reduceImportSpecifier(e,{binding:this.BindingIdentifier(s,e.binding)})},LabeledStatement(s,e){return s.reduceLabeledStatement(e,{body:this[e.body.type](s,e.body)})},LiteralBooleanExpression(s,e){return s.reduceLiteralBooleanExpression(e)},LiteralInfinityExpression(s,e){return s.reduceLiteralInfinityExpression(e)},LiteralNullExpression(s,e){return s.reduceLiteralNullExpression(e)},LiteralNumericExpression(s,e){return s.reduceLiteralNumericExpression(e)},LiteralRegExpExpression(s,e){return s.reduceLiteralRegExpExpression(e)},LiteralStringExpression(s,e){return s.reduceLiteralStringExpression(e)},Method(s,e){return s.reduceMethod(e,{name:this[e.name.type](s,e.name),params:this.FormalParameters(s,e.params),body:this.FunctionBody(s,e.body)})},Module(s,e){return s.reduceModule(e,{directives:e.directives.map(r=>this.Directive(s,r)),items:e.items.map(r=>this[r.type](s,r))})},NewExpression(s,e){return s.reduceNewExpression(e,{callee:this[e.callee.type](s,e.callee),arguments:e.arguments.map(r=>this[r.type](s,r))})},NewTargetExpression(s,e){return s.reduceNewTargetExpression(e)},ObjectAssignmentTarget(s,e){return s.reduceObjectAssignmentTarget(e,{properties:e.properties.map(r=>this[r.type](s,r)),rest:e.rest&&this[e.rest.type](s,e.rest)})},ObjectBinding(s,e){return s.reduceObjectBinding(e,{properties:e.properties.map(r=>this[r.type](s,r)),rest:e.rest&&this.BindingIdentifier(s,e.rest)})},ObjectExpression(s,e){return s.reduceObjectExpression(e,{properties:e.properties.map(r=>this[r.type](s,r))})},ReturnStatement(s,e){return s.reduceReturnStatement(e,{expression:e.expression&&this[e.expression.type](s,e.expression)})},Script(s,e){return s.reduceScript(e,{directives:e.directives.map(r=>this.Directive(s,r)),statements:e.statements.map(r=>this[r.type](s,r))})},Setter(s,e){return s.reduceSetter(e,{name:this[e.name.type](s,e.name),param:this[e.param.type](s,e.param),body:this.FunctionBody(s,e.body)})},ShorthandProperty(s,e){return s.reduceShorthandProperty(e,{name:this.IdentifierExpression(s,e.name)})},SpreadElement(s,e){return s.reduceSpreadElement(e,{expression:this[e.expression.type](s,e.expression)})},SpreadProperty(s,e){return s.reduceSpreadProperty(e,{expression:this[e.expression.type](s,e.expression)})},StaticMemberAssignmentTarget(s,e){return s.reduceStaticMemberAssignmentTarget(e,{object:this[e.object.type](s,e.object)})},StaticMemberExpression(s,e){return s.reduceStaticMemberExpression(e,{object:this[e.object.type](s,e.object)})},StaticPropertyName(s,e){return s.reduceStaticPropertyName(e)},Super(s,e){return s.reduceSuper(e)},SwitchCase(s,e){return s.reduceSwitchCase(e,{test:this[e.test.type](s,e.test),consequent:e.consequent.map(r=>this[r.type](s,r))})},SwitchDefault(s,e){return s.reduceSwitchDefault(e,{consequent:e.consequent.map(r=>this[r.type](s,r))})},SwitchStatement(s,e){return s.reduceSwitchStatement(e,{discriminant:this[e.discriminant.type](s,e.discriminant),cases:e.cases.map(r=>this.SwitchCase(s,r))})},SwitchStatementWithDefault(s,e){return s.reduceSwitchStatementWithDefault(e,{discriminant:this[e.discriminant.type](s,e.discriminant),preDefaultCases:e.preDefaultCases.map(r=>this.SwitchCase(s,r)),defaultCase:this.SwitchDefault(s,e.defaultCase),postDefaultCases:e.postDefaultCases.map(r=>this.SwitchCase(s,r))})},TemplateElement(s,e){return s.reduceTemplateElement(e)},TemplateExpression(s,e){return s.reduceTemplateExpression(e,{tag:e.tag&&this[e.tag.type](s,e.tag),elements:e.elements.map(r=>this[r.type](s,r))})},ThisExpression(s,e){return s.reduceThisExpression(e)},ThrowStatement(s,e){return s.reduceThrowStatement(e,{expression:this[e.expression.type](s,e.expression)})},TryCatchStatement(s,e){return s.reduceTryCatchStatement(e,{body:this.Block(s,e.body),catchClause:this.CatchClause(s,e.catchClause)})},TryFinallyStatement(s,e){return s.reduceTryFinallyStatement(e,{body:this.Block(s,e.body),catchClause:e.catchClause&&this.CatchClause(s,e.catchClause),finalizer:this.Block(s,e.finalizer)})},UnaryExpression(s,e){return s.reduceUnaryExpression(e,{operand:this[e.operand.type](s,e.operand)})},UpdateExpression(s,e){return s.reduceUpdateExpression(e,{operand:this[e.operand.type](s,e.operand)})},VariableDeclaration(s,e){return s.reduceVariableDeclaration(e,{declarators:e.declarators.map(r=>this.VariableDeclarator(s,r))})},VariableDeclarationStatement(s,e){return s.reduceVariableDeclarationStatement(e,{declaration:this.VariableDeclaration(s,e.declaration)})},VariableDeclarator(s,e){return s.reduceVariableDeclarator(e,{binding:this[e.binding.type](s,e.binding),init:e.init&&this[e.init.type](s,e.init)})},WhileStatement(s,e){return s.reduceWhileStatement(e,{test:this[e.test.type](s,e.test),body:this[e.body.type](s,e.body)})},WithStatement(s,e){return s.reduceWithStatement(e,{object:this[e.object.type](s,e.object),body:this[e.body.type](s,e.body)})},YieldExpression(s,e){return s.reduceYieldExpression(e,{expression:e.expression&&this[e.expression.type](s,e.expression)})},YieldGeneratorExpression(s,e){return s.reduceYieldGeneratorExpression(e,{expression:this[e.expression.type](s,e.expression)})}};var director_1=function s(e,r){return director$1[r.type](e,r)};const director={ArrayAssignmentTarget(s,e){return s.reduceArrayAssignmentTarget(e,{elements:e.elements.map(r=>r&&(()=>this[r.type](s,r))),rest:e.rest&&(()=>this[e.rest.type](s,e.rest))})},ArrayBinding(s,e){return s.reduceArrayBinding(e,{elements:e.elements.map(r=>r&&(()=>this[r.type](s,r))),rest:e.rest&&(()=>this[e.rest.type](s,e.rest))})},ArrayExpression(s,e){return s.reduceArrayExpression(e,{elements:e.elements.map(r=>r&&(()=>this[r.type](s,r)))})},ArrowExpression(s,e){return s.reduceArrowExpression(e,{params:()=>this.FormalParameters(s,e.params),body:()=>this[e.body.type](s,e.body)})},AssignmentExpression(s,e){return s.reduceAssignmentExpression(e,{binding:()=>this[e.binding.type](s,e.binding),expression:()=>this[e.expression.type](s,e.expression)})},AssignmentTargetIdentifier(s,e){return s.reduceAssignmentTargetIdentifier(e)},AssignmentTargetPropertyIdentifier(s,e){return s.reduceAssignmentTargetPropertyIdentifier(e,{binding:()=>this.AssignmentTargetIdentifier(s,e.binding),init:e.init&&(()=>this[e.init.type](s,e.init))})},AssignmentTargetPropertyProperty(s,e){return s.reduceAssignmentTargetPropertyProperty(e,{name:()=>this[e.name.type](s,e.name),binding:()=>this[e.binding.type](s,e.binding)})},AssignmentTargetWithDefault(s,e){return s.reduceAssignmentTargetWithDefault(e,{binding:()=>this[e.binding.type](s,e.binding),init:()=>this[e.init.type](s,e.init)})},AwaitExpression(s,e){return s.reduceAwaitExpression(e,{expression:()=>this[e.expression.type](s,e.expression)})},BinaryExpression(s,e){return s.reduceBinaryExpression(e,{left:()=>this[e.left.type](s,e.left),right:()=>this[e.right.type](s,e.right)})},BindingIdentifier(s,e){return s.reduceBindingIdentifier(e)},BindingPropertyIdentifier(s,e){return s.reduceBindingPropertyIdentifier(e,{binding:()=>this.BindingIdentifier(s,e.binding),init:e.init&&(()=>this[e.init.type](s,e.init))})},BindingPropertyProperty(s,e){return s.reduceBindingPropertyProperty(e,{name:()=>this[e.name.type](s,e.name),binding:()=>this[e.binding.type](s,e.binding)})},BindingWithDefault(s,e){return s.reduceBindingWithDefault(e,{binding:()=>this[e.binding.type](s,e.binding),init:()=>this[e.init.type](s,e.init)})},Block(s,e){return s.reduceBlock(e,{statements:e.statements.map(r=>()=>this[r.type](s,r))})},BlockStatement(s,e){return s.reduceBlockStatement(e,{block:()=>this.Block(s,e.block)})},BreakStatement(s,e){return s.reduceBreakStatement(e)},CallExpression(s,e){return s.reduceCallExpression(e,{callee:()=>this[e.callee.type](s,e.callee),arguments:e.arguments.map(r=>()=>this[r.type](s,r))})},CatchClause(s,e){return s.reduceCatchClause(e,{binding:e.binding&&(()=>this[e.binding.type](s,e.binding)),body:()=>this.Block(s,e.body)})},ClassDeclaration(s,e){return s.reduceClassDeclaration(e,{name:()=>this.BindingIdentifier(s,e.name),super:e.super&&(()=>this[e.super.type](s,e.super)),elements:e.elements.map(r=>()=>this.ClassElement(s,r))})},ClassElement(s,e){return s.reduceClassElement(e,{method:()=>this[e.method.type](s,e.method)})},ClassExpression(s,e){return s.reduceClassExpression(e,{name:e.name&&(()=>this.BindingIdentifier(s,e.name)),super:e.super&&(()=>this[e.super.type](s,e.super)),elements:e.elements.map(r=>()=>this.ClassElement(s,r))})},CompoundAssignmentExpression(s,e){return s.reduceCompoundAssignmentExpression(e,{binding:()=>this[e.binding.type](s,e.binding),expression:()=>this[e.expression.type](s,e.expression)})},ComputedMemberAssignmentTarget(s,e){return s.reduceComputedMemberAssignmentTarget(e,{object:()=>this[e.object.type](s,e.object),expression:()=>this[e.expression.type](s,e.expression)})},ComputedMemberExpression(s,e){return s.reduceComputedMemberExpression(e,{object:()=>this[e.object.type](s,e.object),expression:()=>this[e.expression.type](s,e.expression)})},ComputedPropertyName(s,e){return s.reduceComputedPropertyName(e,{expression:()=>this[e.expression.type](s,e.expression)})},ConditionalExpression(s,e){return s.reduceConditionalExpression(e,{test:()=>this[e.test.type](s,e.test),consequent:()=>this[e.consequent.type](s,e.consequent),alternate:()=>this[e.alternate.type](s,e.alternate)})},ContinueStatement(s,e){return s.reduceContinueStatement(e)},DataProperty(s,e){return s.reduceDataProperty(e,{name:()=>this[e.name.type](s,e.name),expression:()=>this[e.expression.type](s,e.expression)})},DebuggerStatement(s,e){return s.reduceDebuggerStatement(e)},Directive(s,e){return s.reduceDirective(e)},DoWhileStatement(s,e){return s.reduceDoWhileStatement(e,{body:()=>this[e.body.type](s,e.body),test:()=>this[e.test.type](s,e.test)})},EmptyStatement(s,e){return s.reduceEmptyStatement(e)},Export(s,e){return s.reduceExport(e,{declaration:()=>this[e.declaration.type](s,e.declaration)})},ExportAllFrom(s,e){return s.reduceExportAllFrom(e)},ExportDefault(s,e){return s.reduceExportDefault(e,{body:()=>this[e.body.type](s,e.body)})},ExportFrom(s,e){return s.reduceExportFrom(e,{namedExports:e.namedExports.map(r=>()=>this.ExportFromSpecifier(s,r))})},ExportFromSpecifier(s,e){return s.reduceExportFromSpecifier(e)},ExportLocalSpecifier(s,e){return s.reduceExportLocalSpecifier(e,{name:()=>this.IdentifierExpression(s,e.name)})},ExportLocals(s,e){return s.reduceExportLocals(e,{namedExports:e.namedExports.map(r=>()=>this.ExportLocalSpecifier(s,r))})},ExpressionStatement(s,e){return s.reduceExpressionStatement(e,{expression:()=>this[e.expression.type](s,e.expression)})},ForAwaitStatement(s,e){return s.reduceForAwaitStatement(e,{left:()=>this[e.left.type](s,e.left),right:()=>this[e.right.type](s,e.right),body:()=>this[e.body.type](s,e.body)})},ForInStatement(s,e){return s.reduceForInStatement(e,{left:()=>this[e.left.type](s,e.left),right:()=>this[e.right.type](s,e.right),body:()=>this[e.body.type](s,e.body)})},ForOfStatement(s,e){return s.reduceForOfStatement(e,{left:()=>this[e.left.type](s,e.left),right:()=>this[e.right.type](s,e.right),body:()=>this[e.body.type](s,e.body)})},ForStatement(s,e){return s.reduceForStatement(e,{init:e.init&&(()=>this[e.init.type](s,e.init)),test:e.test&&(()=>this[e.test.type](s,e.test)),update:e.update&&(()=>this[e.update.type](s,e.update)),body:()=>this[e.body.type](s,e.body)})},FormalParameters(s,e){return s.reduceFormalParameters(e,{items:e.items.map(r=>()=>this[r.type](s,r)),rest:e.rest&&(()=>this[e.rest.type](s,e.rest))})},FunctionBody(s,e){return s.reduceFunctionBody(e,{directives:e.directives.map(r=>()=>this.Directive(s,r)),statements:e.statements.map(r=>()=>this[r.type](s,r))})},FunctionDeclaration(s,e){return s.reduceFunctionDeclaration(e,{name:()=>this.BindingIdentifier(s,e.name),params:()=>this.FormalParameters(s,e.params),body:()=>this.FunctionBody(s,e.body)})},FunctionExpression(s,e){return s.reduceFunctionExpression(e,{name:e.name&&(()=>this.BindingIdentifier(s,e.name)),params:()=>this.FormalParameters(s,e.params),body:()=>this.FunctionBody(s,e.body)})},Getter(s,e){return s.reduceGetter(e,{name:()=>this[e.name.type](s,e.name),body:()=>this.FunctionBody(s,e.body)})},IdentifierExpression(s,e){return s.reduceIdentifierExpression(e)},IfStatement(s,e){return s.reduceIfStatement(e,{test:()=>this[e.test.type](s,e.test),consequent:()=>this[e.consequent.type](s,e.consequent),alternate:e.alternate&&(()=>this[e.alternate.type](s,e.alternate))})},Import(s,e){return s.reduceImport(e,{defaultBinding:e.defaultBinding&&(()=>this.BindingIdentifier(s,e.defaultBinding)),namedImports:e.namedImports.map(r=>()=>this.ImportSpecifier(s,r))})},ImportNamespace(s,e){return s.reduceImportNamespace(e,{defaultBinding:e.defaultBinding&&(()=>this.BindingIdentifier(s,e.defaultBinding)),namespaceBinding:()=>this.BindingIdentifier(s,e.namespaceBinding)})},ImportSpecifier(s,e){return s.reduceImportSpecifier(e,{binding:()=>this.BindingIdentifier(s,e.binding)})},LabeledStatement(s,e){return s.reduceLabeledStatement(e,{body:()=>this[e.body.type](s,e.body)})},LiteralBooleanExpression(s,e){return s.reduceLiteralBooleanExpression(e)},LiteralInfinityExpression(s,e){return s.reduceLiteralInfinityExpression(e)},LiteralNullExpression(s,e){return s.reduceLiteralNullExpression(e)},LiteralNumericExpression(s,e){return s.reduceLiteralNumericExpression(e)},LiteralRegExpExpression(s,e){return s.reduceLiteralRegExpExpression(e)},LiteralStringExpression(s,e){return s.reduceLiteralStringExpression(e)},Method(s,e){return s.reduceMethod(e,{name:()=>this[e.name.type](s,e.name),params:()=>this.FormalParameters(s,e.params),body:()=>this.FunctionBody(s,e.body)})},Module(s,e){return s.reduceModule(e,{directives:e.directives.map(r=>()=>this.Directive(s,r)),items:e.items.map(r=>()=>this[r.type](s,r))})},NewExpression(s,e){return s.reduceNewExpression(e,{callee:()=>this[e.callee.type](s,e.callee),arguments:e.arguments.map(r=>()=>this[r.type](s,r))})},NewTargetExpression(s,e){return s.reduceNewTargetExpression(e)},ObjectAssignmentTarget(s,e){return s.reduceObjectAssignmentTarget(e,{properties:e.properties.map(r=>()=>this[r.type](s,r)),rest:e.rest&&(()=>this[e.rest.type](s,e.rest))})},ObjectBinding(s,e){return s.reduceObjectBinding(e,{properties:e.properties.map(r=>()=>this[r.type](s,r)),rest:e.rest&&(()=>this.BindingIdentifier(s,e.rest))})},ObjectExpression(s,e){return s.reduceObjectExpression(e,{properties:e.properties.map(r=>()=>this[r.type](s,r))})},ReturnStatement(s,e){return s.reduceReturnStatement(e,{expression:e.expression&&(()=>this[e.expression.type](s,e.expression))})},Script(s,e){return s.reduceScript(e,{directives:e.directives.map(r=>()=>this.Directive(s,r)),statements:e.statements.map(r=>()=>this[r.type](s,r))})},Setter(s,e){return s.reduceSetter(e,{name:()=>this[e.name.type](s,e.name),param:()=>this[e.param.type](s,e.param),body:()=>this.FunctionBody(s,e.body)})},ShorthandProperty(s,e){return s.reduceShorthandProperty(e,{name:()=>this.IdentifierExpression(s,e.name)})},SpreadElement(s,e){return s.reduceSpreadElement(e,{expression:()=>this[e.expression.type](s,e.expression)})},SpreadProperty(s,e){return s.reduceSpreadProperty(e,{expression:()=>this[e.expression.type](s,e.expression)})},StaticMemberAssignmentTarget(s,e){return s.reduceStaticMemberAssignmentTarget(e,{object:()=>this[e.object.type](s,e.object)})},StaticMemberExpression(s,e){return s.reduceStaticMemberExpression(e,{object:()=>this[e.object.type](s,e.object)})},StaticPropertyName(s,e){return s.reduceStaticPropertyName(e)},Super(s,e){return s.reduceSuper(e)},SwitchCase(s,e){return s.reduceSwitchCase(e,{test:()=>this[e.test.type](s,e.test),consequent:e.consequent.map(r=>()=>this[r.type](s,r))})},SwitchDefault(s,e){return s.reduceSwitchDefault(e,{consequent:e.consequent.map(r=>()=>this[r.type](s,r))})},SwitchStatement(s,e){return s.reduceSwitchStatement(e,{discriminant:()=>this[e.discriminant.type](s,e.discriminant),cases:e.cases.map(r=>()=>this.SwitchCase(s,r))})},SwitchStatementWithDefault(s,e){return s.reduceSwitchStatementWithDefault(e,{discriminant:()=>this[e.discriminant.type](s,e.discriminant),preDefaultCases:e.preDefaultCases.map(r=>()=>this.SwitchCase(s,r)),defaultCase:()=>this.SwitchDefault(s,e.defaultCase),postDefaultCases:e.postDefaultCases.map(r=>()=>this.SwitchCase(s,r))})},TemplateElement(s,e){return s.reduceTemplateElement(e)},TemplateExpression(s,e){return s.reduceTemplateExpression(e,{tag:e.tag&&(()=>this[e.tag.type](s,e.tag)),elements:e.elements.map(r=>()=>this[r.type](s,r))})},ThisExpression(s,e){return s.reduceThisExpression(e)},ThrowStatement(s,e){return s.reduceThrowStatement(e,{expression:()=>this[e.expression.type](s,e.expression)})},TryCatchStatement(s,e){return s.reduceTryCatchStatement(e,{body:()=>this.Block(s,e.body),catchClause:()=>this.CatchClause(s,e.catchClause)})},TryFinallyStatement(s,e){return s.reduceTryFinallyStatement(e,{body:()=>this.Block(s,e.body),catchClause:e.catchClause&&(()=>this.CatchClause(s,e.catchClause)),finalizer:()=>this.Block(s,e.finalizer)})},UnaryExpression(s,e){return s.reduceUnaryExpression(e,{operand:()=>this[e.operand.type](s,e.operand)})},UpdateExpression(s,e){return s.reduceUpdateExpression(e,{operand:()=>this[e.operand.type](s,e.operand)})},VariableDeclaration(s,e){return s.reduceVariableDeclaration(e,{declarators:e.declarators.map(r=>()=>this.VariableDeclarator(s,r))})},VariableDeclarationStatement(s,e){return s.reduceVariableDeclarationStatement(e,{declaration:()=>this.VariableDeclaration(s,e.declaration)})},VariableDeclarator(s,e){return s.reduceVariableDeclarator(e,{binding:()=>this[e.binding.type](s,e.binding),init:e.init&&(()=>this[e.init.type](s,e.init))})},WhileStatement(s,e){return s.reduceWhileStatement(e,{test:()=>this[e.test.type](s,e.test),body:()=>this[e.body.type](s,e.body)})},WithStatement(s,e){return s.reduceWithStatement(e,{object:()=>this[e.object.type](s,e.object),body:()=>this[e.body.type](s,e.body)})},YieldExpression(s,e){return s.reduceYieldExpression(e,{expression:e.expression&&(()=>this[e.expression.type](s,e.expression))})},YieldGeneratorExpression(s,e){return s.reduceYieldGeneratorExpression(e,{expression:()=>this[e.expression.type](s,e.expression)})}};var thunkedDirector=function s(e,r){return director[r.type](e,r)},thunkify$1=function s(e){return{reduceArrayAssignmentTarget(r,{elements:u,rest:i}){return e.reduceArrayAssignmentTarget(r,{elements:u.map(n=>n==null?null:n()),rest:i==null?null:i()})},reduceArrayBinding(r,{elements:u,rest:i}){return e.reduceArrayBinding(r,{elements:u.map(n=>n==null?null:n()),rest:i==null?null:i()})},reduceArrayExpression(r,{elements:u}){return e.reduceArrayExpression(r,{elements:u.map(i=>i==null?null:i())})},reduceArrowExpression(r,{params:u,body:i}){return e.reduceArrowExpression(r,{params:u(),body:i()})},reduceAssignmentExpression(r,{binding:u,expression:i}){return e.reduceAssignmentExpression(r,{binding:u(),expression:i()})},reduceAssignmentTargetIdentifier(r){return e.reduceAssignmentTargetIdentifier(r)},reduceAssignmentTargetPropertyIdentifier(r,{binding:u,init:i}){return e.reduceAssignmentTargetPropertyIdentifier(r,{binding:u(),init:i==null?null:i()})},reduceAssignmentTargetPropertyProperty(r,{name:u,binding:i}){return e.reduceAssignmentTargetPropertyProperty(r,{name:u(),binding:i()})},reduceAssignmentTargetWithDefault(r,{binding:u,init:i}){return e.reduceAssignmentTargetWithDefault(r,{binding:u(),init:i()})},reduceAwaitExpression(r,{expression:u}){return e.reduceAwaitExpression(r,{expression:u()})},reduceBinaryExpression(r,{left:u,right:i}){return e.reduceBinaryExpression(r,{left:u(),right:i()})},reduceBindingIdentifier(r){return e.reduceBindingIdentifier(r)},reduceBindingPropertyIdentifier(r,{binding:u,init:i}){return e.reduceBindingPropertyIdentifier(r,{binding:u(),init:i==null?null:i()})},reduceBindingPropertyProperty(r,{name:u,binding:i}){return e.reduceBindingPropertyProperty(r,{name:u(),binding:i()})},reduceBindingWithDefault(r,{binding:u,init:i}){return e.reduceBindingWithDefault(r,{binding:u(),init:i()})},reduceBlock(r,{statements:u}){return e.reduceBlock(r,{statements:u.map(i=>i())})},reduceBlockStatement(r,{block:u}){return e.reduceBlockStatement(r,{block:u()})},reduceBreakStatement(r){return e.reduceBreakStatement(r)},reduceCallExpression(r,{callee:u,arguments:i}){return e.reduceCallExpression(r,{callee:u(),arguments:i.map(n=>n())})},reduceCatchClause(r,{binding:u,body:i}){return e.reduceCatchClause(r,{binding:u==null?null:u(),body:i()})},reduceClassDeclaration(r,{name:u,super:i,elements:n}){return e.reduceClassDeclaration(r,{name:u(),super:i==null?null:i(),elements:n.map(a=>a())})},reduceClassElement(r,{method:u}){return e.reduceClassElement(r,{method:u()})},reduceClassExpression(r,{name:u,super:i,elements:n}){return e.reduceClassExpression(r,{name:u==null?null:u(),super:i==null?null:i(),elements:n.map(a=>a())})},reduceCompoundAssignmentExpression(r,{binding:u,expression:i}){return e.reduceCompoundAssignmentExpression(r,{binding:u(),expression:i()})},reduceComputedMemberAssignmentTarget(r,{object:u,expression:i}){return e.reduceComputedMemberAssignmentTarget(r,{object:u(),expression:i()})},reduceComputedMemberExpression(r,{object:u,expression:i}){return e.reduceComputedMemberExpression(r,{object:u(),expression:i()})},reduceComputedPropertyName(r,{expression:u}){return e.reduceComputedPropertyName(r,{expression:u()})},reduceConditionalExpression(r,{test:u,consequent:i,alternate:n}){return e.reduceConditionalExpression(r,{test:u(),consequent:i(),alternate:n()})},reduceContinueStatement(r){return e.reduceContinueStatement(r)},reduceDataProperty(r,{name:u,expression:i}){return e.reduceDataProperty(r,{name:u(),expression:i()})},reduceDebuggerStatement(r){return e.reduceDebuggerStatement(r)},reduceDirective(r){return e.reduceDirective(r)},reduceDoWhileStatement(r,{body:u,test:i}){return e.reduceDoWhileStatement(r,{body:u(),test:i()})},reduceEmptyStatement(r){return e.reduceEmptyStatement(r)},reduceExport(r,{declaration:u}){return e.reduceExport(r,{declaration:u()})},reduceExportAllFrom(r){return e.reduceExportAllFrom(r)},reduceExportDefault(r,{body:u}){return e.reduceExportDefault(r,{body:u()})},reduceExportFrom(r,{namedExports:u}){return e.reduceExportFrom(r,{namedExports:u.map(i=>i())})},reduceExportFromSpecifier(r){return e.reduceExportFromSpecifier(r)},reduceExportLocalSpecifier(r,{name:u}){return e.reduceExportLocalSpecifier(r,{name:u()})},reduceExportLocals(r,{namedExports:u}){return e.reduceExportLocals(r,{namedExports:u.map(i=>i())})},reduceExpressionStatement(r,{expression:u}){return e.reduceExpressionStatement(r,{expression:u()})},reduceForAwaitStatement(r,{left:u,right:i,body:n}){return e.reduceForAwaitStatement(r,{left:u(),right:i(),body:n()})},reduceForInStatement(r,{left:u,right:i,body:n}){return e.reduceForInStatement(r,{left:u(),right:i(),body:n()})},reduceForOfStatement(r,{left:u,right:i,body:n}){return e.reduceForOfStatement(r,{left:u(),right:i(),body:n()})},reduceForStatement(r,{init:u,test:i,update:n,body:a}){return e.reduceForStatement(r,{init:u==null?null:u(),test:i==null?null:i(),update:n==null?null:n(),body:a()})},reduceFormalParameters(r,{items:u,rest:i}){return e.reduceFormalParameters(r,{items:u.map(n=>n()),rest:i==null?null:i()})},reduceFunctionBody(r,{directives:u,statements:i}){return e.reduceFunctionBody(r,{directives:u.map(n=>n()),statements:i.map(n=>n())})},reduceFunctionDeclaration(r,{name:u,params:i,body:n}){return e.reduceFunctionDeclaration(r,{name:u(),params:i(),body:n()})},reduceFunctionExpression(r,{name:u,params:i,body:n}){return e.reduceFunctionExpression(r,{name:u==null?null:u(),params:i(),body:n()})},reduceGetter(r,{name:u,body:i}){return e.reduceGetter(r,{name:u(),body:i()})},reduceIdentifierExpression(r){return e.reduceIdentifierExpression(r)},reduceIfStatement(r,{test:u,consequent:i,alternate:n}){return e.reduceIfStatement(r,{test:u(),consequent:i(),alternate:n==null?null:n()})},reduceImport(r,{defaultBinding:u,namedImports:i}){return e.reduceImport(r,{defaultBinding:u==null?null:u(),namedImports:i.map(n=>n())})},reduceImportNamespace(r,{defaultBinding:u,namespaceBinding:i}){return e.reduceImportNamespace(r,{defaultBinding:u==null?null:u(),namespaceBinding:i()})},reduceImportSpecifier(r,{binding:u}){return e.reduceImportSpecifier(r,{binding:u()})},reduceLabeledStatement(r,{body:u}){return e.reduceLabeledStatement(r,{body:u()})},reduceLiteralBooleanExpression(r){return e.reduceLiteralBooleanExpression(r)},reduceLiteralInfinityExpression(r){return e.reduceLiteralInfinityExpression(r)},reduceLiteralNullExpression(r){return e.reduceLiteralNullExpression(r)},reduceLiteralNumericExpression(r){return e.reduceLiteralNumericExpression(r)},reduceLiteralRegExpExpression(r){return e.reduceLiteralRegExpExpression(r)},reduceLiteralStringExpression(r){return e.reduceLiteralStringExpression(r)},reduceMethod(r,{name:u,params:i,body:n}){return e.reduceMethod(r,{name:u(),params:i(),body:n()})},reduceModule(r,{directives:u,items:i}){return e.reduceModule(r,{directives:u.map(n=>n()),items:i.map(n=>n())})},reduceNewExpression(r,{callee:u,arguments:i}){return e.reduceNewExpression(r,{callee:u(),arguments:i.map(n=>n())})},reduceNewTargetExpression(r){return e.reduceNewTargetExpression(r)},reduceObjectAssignmentTarget(r,{properties:u,rest:i}){return e.reduceObjectAssignmentTarget(r,{properties:u.map(n=>n()),rest:i==null?null:i()})},reduceObjectBinding(r,{properties:u,rest:i}){return e.reduceObjectBinding(r,{properties:u.map(n=>n()),rest:i==null?null:i()})},reduceObjectExpression(r,{properties:u}){return e.reduceObjectExpression(r,{properties:u.map(i=>i())})},reduceReturnStatement(r,{expression:u}){return e.reduceReturnStatement(r,{expression:u==null?null:u()})},reduceScript(r,{directives:u,statements:i}){return e.reduceScript(r,{directives:u.map(n=>n()),statements:i.map(n=>n())})},reduceSetter(r,{name:u,param:i,body:n}){return e.reduceSetter(r,{name:u(),param:i(),body:n()})},reduceShorthandProperty(r,{name:u}){return e.reduceShorthandProperty(r,{name:u()})},reduceSpreadElement(r,{expression:u}){return e.reduceSpreadElement(r,{expression:u()})},reduceSpreadProperty(r,{expression:u}){return e.reduceSpreadProperty(r,{expression:u()})},reduceStaticMemberAssignmentTarget(r,{object:u}){return e.reduceStaticMemberAssignmentTarget(r,{object:u()})},reduceStaticMemberExpression(r,{object:u}){return e.reduceStaticMemberExpression(r,{object:u()})},reduceStaticPropertyName(r){return e.reduceStaticPropertyName(r)},reduceSuper(r){return e.reduceSuper(r)},reduceSwitchCase(r,{test:u,consequent:i}){return e.reduceSwitchCase(r,{test:u(),consequent:i.map(n=>n())})},reduceSwitchDefault(r,{consequent:u}){return e.reduceSwitchDefault(r,{consequent:u.map(i=>i())})},reduceSwitchStatement(r,{discriminant:u,cases:i}){return e.reduceSwitchStatement(r,{discriminant:u(),cases:i.map(n=>n())})},reduceSwitchStatementWithDefault(r,{discriminant:u,preDefaultCases:i,defaultCase:n,postDefaultCases:a}){return e.reduceSwitchStatementWithDefault(r,{discriminant:u(),preDefaultCases:i.map(l=>l()),defaultCase:n(),postDefaultCases:a.map(l=>l())})},reduceTemplateElement(r){return e.reduceTemplateElement(r)},reduceTemplateExpression(r,{tag:u,elements:i}){return e.reduceTemplateExpression(r,{tag:u==null?null:u(),elements:i.map(n=>n())})},reduceThisExpression(r){return e.reduceThisExpression(r)},reduceThrowStatement(r,{expression:u}){return e.reduceThrowStatement(r,{expression:u()})},reduceTryCatchStatement(r,{body:u,catchClause:i}){return e.reduceTryCatchStatement(r,{body:u(),catchClause:i()})},reduceTryFinallyStatement(r,{body:u,catchClause:i,finalizer:n}){return e.reduceTryFinallyStatement(r,{body:u(),catchClause:i==null?null:i(),finalizer:n()})},reduceUnaryExpression(r,{operand:u}){return e.reduceUnaryExpression(r,{operand:u()})},reduceUpdateExpression(r,{operand:u}){return e.reduceUpdateExpression(r,{operand:u()})},reduceVariableDeclaration(r,{declarators:u}){return e.reduceVariableDeclaration(r,{declarators:u.map(i=>i())})},reduceVariableDeclarationStatement(r,{declaration:u}){return e.reduceVariableDeclarationStatement(r,{declaration:u()})},reduceVariableDeclarator(r,{binding:u,init:i}){return e.reduceVariableDeclarator(r,{binding:u(),init:i==null?null:i()})},reduceWhileStatement(r,{test:u,body:i}){return e.reduceWhileStatement(r,{test:u(),body:i()})},reduceWithStatement(r,{object:u,body:i}){return e.reduceWithStatement(r,{object:u(),body:i()})},reduceYieldExpression(r,{expression:u}){return e.reduceYieldExpression(r,{expression:u==null?null:u()})},reduceYieldGeneratorExpression(r,{expression:u}){return e.reduceYieldGeneratorExpression(r,{expression:u()})}}},thunkifyClass$1=function s(e){return class extends e{reduceArrayAssignmentTarget(r,{elements:u,rest:i}){return super.reduceArrayAssignmentTarget(r,{elements:u.map(n=>n==null?null:n()),rest:i==null?null:i()})}reduceArrayBinding(r,{elements:u,rest:i}){return super.reduceArrayBinding(r,{elements:u.map(n=>n==null?null:n()),rest:i==null?null:i()})}reduceArrayExpression(r,{elements:u}){return super.reduceArrayExpression(r,{elements:u.map(i=>i==null?null:i())})}reduceArrowExpression(r,{params:u,body:i}){return super.reduceArrowExpression(r,{params:u(),body:i()})}reduceAssignmentExpression(r,{binding:u,expression:i}){return super.reduceAssignmentExpression(r,{binding:u(),expression:i()})}reduceAssignmentTargetIdentifier(r){return super.reduceAssignmentTargetIdentifier(r)}reduceAssignmentTargetPropertyIdentifier(r,{binding:u,init:i}){return super.reduceAssignmentTargetPropertyIdentifier(r,{binding:u(),init:i==null?null:i()})}reduceAssignmentTargetPropertyProperty(r,{name:u,binding:i}){return super.reduceAssignmentTargetPropertyProperty(r,{name:u(),binding:i()})}reduceAssignmentTargetWithDefault(r,{binding:u,init:i}){return super.reduceAssignmentTargetWithDefault(r,{binding:u(),init:i()})}reduceAwaitExpression(r,{expression:u}){return super.reduceAwaitExpression(r,{expression:u()})}reduceBinaryExpression(r,{left:u,right:i}){return super.reduceBinaryExpression(r,{left:u(),right:i()})}reduceBindingIdentifier(r){return super.reduceBindingIdentifier(r)}reduceBindingPropertyIdentifier(r,{binding:u,init:i}){return super.reduceBindingPropertyIdentifier(r,{binding:u(),init:i==null?null:i()})}reduceBindingPropertyProperty(r,{name:u,binding:i}){return super.reduceBindingPropertyProperty(r,{name:u(),binding:i()})}reduceBindingWithDefault(r,{binding:u,init:i}){return super.reduceBindingWithDefault(r,{binding:u(),init:i()})}reduceBlock(r,{statements:u}){return super.reduceBlock(r,{statements:u.map(i=>i())})}reduceBlockStatement(r,{block:u}){return super.reduceBlockStatement(r,{block:u()})}reduceBreakStatement(r){return super.reduceBreakStatement(r)}reduceCallExpression(r,{callee:u,arguments:i}){return super.reduceCallExpression(r,{callee:u(),arguments:i.map(n=>n())})}reduceCatchClause(r,{binding:u,body:i}){return super.reduceCatchClause(r,{binding:u==null?null:u(),body:i()})}reduceClassDeclaration(r,{name:u,super:i,elements:n}){return super.reduceClassDeclaration(r,{name:u(),super:i==null?null:i(),elements:n.map(a=>a())})}reduceClassElement(r,{method:u}){return super.reduceClassElement(r,{method:u()})}reduceClassExpression(r,{name:u,super:i,elements:n}){return super.reduceClassExpression(r,{name:u==null?null:u(),super:i==null?null:i(),elements:n.map(a=>a())})}reduceCompoundAssignmentExpression(r,{binding:u,expression:i}){return super.reduceCompoundAssignmentExpression(r,{binding:u(),expression:i()})}reduceComputedMemberAssignmentTarget(r,{object:u,expression:i}){return super.reduceComputedMemberAssignmentTarget(r,{object:u(),expression:i()})}reduceComputedMemberExpression(r,{object:u,expression:i}){return super.reduceComputedMemberExpression(r,{object:u(),expression:i()})}reduceComputedPropertyName(r,{expression:u}){return super.reduceComputedPropertyName(r,{expression:u()})}reduceConditionalExpression(r,{test:u,consequent:i,alternate:n}){return super.reduceConditionalExpression(r,{test:u(),consequent:i(),alternate:n()})}reduceContinueStatement(r){return super.reduceContinueStatement(r)}reduceDataProperty(r,{name:u,expression:i}){return super.reduceDataProperty(r,{name:u(),expression:i()})}reduceDebuggerStatement(r){return super.reduceDebuggerStatement(r)}reduceDirective(r){return super.reduceDirective(r)}reduceDoWhileStatement(r,{body:u,test:i}){return super.reduceDoWhileStatement(r,{body:u(),test:i()})}reduceEmptyStatement(r){return super.reduceEmptyStatement(r)}reduceExport(r,{declaration:u}){return super.reduceExport(r,{declaration:u()})}reduceExportAllFrom(r){return super.reduceExportAllFrom(r)}reduceExportDefault(r,{body:u}){return super.reduceExportDefault(r,{body:u()})}reduceExportFrom(r,{namedExports:u}){return super.reduceExportFrom(r,{namedExports:u.map(i=>i())})}reduceExportFromSpecifier(r){return super.reduceExportFromSpecifier(r)}reduceExportLocalSpecifier(r,{name:u}){return super.reduceExportLocalSpecifier(r,{name:u()})}reduceExportLocals(r,{namedExports:u}){return super.reduceExportLocals(r,{namedExports:u.map(i=>i())})}reduceExpressionStatement(r,{expression:u}){return super.reduceExpressionStatement(r,{expression:u()})}reduceForAwaitStatement(r,{left:u,right:i,body:n}){return super.reduceForAwaitStatement(r,{left:u(),right:i(),body:n()})}reduceForInStatement(r,{left:u,right:i,body:n}){return super.reduceForInStatement(r,{left:u(),right:i(),body:n()})}reduceForOfStatement(r,{left:u,right:i,body:n}){return super.reduceForOfStatement(r,{left:u(),right:i(),body:n()})}reduceForStatement(r,{init:u,test:i,update:n,body:a}){return super.reduceForStatement(r,{init:u==null?null:u(),test:i==null?null:i(),update:n==null?null:n(),body:a()})}reduceFormalParameters(r,{items:u,rest:i}){return super.reduceFormalParameters(r,{items:u.map(n=>n()),rest:i==null?null:i()})}reduceFunctionBody(r,{directives:u,statements:i}){return super.reduceFunctionBody(r,{directives:u.map(n=>n()),statements:i.map(n=>n())})}reduceFunctionDeclaration(r,{name:u,params:i,body:n}){return super.reduceFunctionDeclaration(r,{name:u(),params:i(),body:n()})}reduceFunctionExpression(r,{name:u,params:i,body:n}){return super.reduceFunctionExpression(r,{name:u==null?null:u(),params:i(),body:n()})}reduceGetter(r,{name:u,body:i}){return super.reduceGetter(r,{name:u(),body:i()})}reduceIdentifierExpression(r){return super.reduceIdentifierExpression(r)}reduceIfStatement(r,{test:u,consequent:i,alternate:n}){return super.reduceIfStatement(r,{test:u(),consequent:i(),alternate:n==null?null:n()})}reduceImport(r,{defaultBinding:u,namedImports:i}){return super.reduceImport(r,{defaultBinding:u==null?null:u(),namedImports:i.map(n=>n())})}reduceImportNamespace(r,{defaultBinding:u,namespaceBinding:i}){return super.reduceImportNamespace(r,{defaultBinding:u==null?null:u(),namespaceBinding:i()})}reduceImportSpecifier(r,{binding:u}){return super.reduceImportSpecifier(r,{binding:u()})}reduceLabeledStatement(r,{body:u}){return super.reduceLabeledStatement(r,{body:u()})}reduceLiteralBooleanExpression(r){return super.reduceLiteralBooleanExpression(r)}reduceLiteralInfinityExpression(r){return super.reduceLiteralInfinityExpression(r)}reduceLiteralNullExpression(r){return super.reduceLiteralNullExpression(r)}reduceLiteralNumericExpression(r){return super.reduceLiteralNumericExpression(r)}reduceLiteralRegExpExpression(r){return super.reduceLiteralRegExpExpression(r)}reduceLiteralStringExpression(r){return super.reduceLiteralStringExpression(r)}reduceMethod(r,{name:u,params:i,body:n}){return super.reduceMethod(r,{name:u(),params:i(),body:n()})}reduceModule(r,{directives:u,items:i}){return super.reduceModule(r,{directives:u.map(n=>n()),items:i.map(n=>n())})}reduceNewExpression(r,{callee:u,arguments:i}){return super.reduceNewExpression(r,{callee:u(),arguments:i.map(n=>n())})}reduceNewTargetExpression(r){return super.reduceNewTargetExpression(r)}reduceObjectAssignmentTarget(r,{properties:u,rest:i}){return super.reduceObjectAssignmentTarget(r,{properties:u.map(n=>n()),rest:i==null?null:i()})}reduceObjectBinding(r,{properties:u,rest:i}){return super.reduceObjectBinding(r,{properties:u.map(n=>n()),rest:i==null?null:i()})}reduceObjectExpression(r,{properties:u}){return super.reduceObjectExpression(r,{properties:u.map(i=>i())})}reduceReturnStatement(r,{expression:u}){return super.reduceReturnStatement(r,{expression:u==null?null:u()})}reduceScript(r,{directives:u,statements:i}){return super.reduceScript(r,{directives:u.map(n=>n()),statements:i.map(n=>n())})}reduceSetter(r,{name:u,param:i,body:n}){return super.reduceSetter(r,{name:u(),param:i(),body:n()})}reduceShorthandProperty(r,{name:u}){return super.reduceShorthandProperty(r,{name:u()})}reduceSpreadElement(r,{expression:u}){return super.reduceSpreadElement(r,{expression:u()})}reduceSpreadProperty(r,{expression:u}){return super.reduceSpreadProperty(r,{expression:u()})}reduceStaticMemberAssignmentTarget(r,{object:u}){return super.reduceStaticMemberAssignmentTarget(r,{object:u()})}reduceStaticMemberExpression(r,{object:u}){return super.reduceStaticMemberExpression(r,{object:u()})}reduceStaticPropertyName(r){return super.reduceStaticPropertyName(r)}reduceSuper(r){return super.reduceSuper(r)}reduceSwitchCase(r,{test:u,consequent:i}){return super.reduceSwitchCase(r,{test:u(),consequent:i.map(n=>n())})}reduceSwitchDefault(r,{consequent:u}){return super.reduceSwitchDefault(r,{consequent:u.map(i=>i())})}reduceSwitchStatement(r,{discriminant:u,cases:i}){return super.reduceSwitchStatement(r,{discriminant:u(),cases:i.map(n=>n())})}reduceSwitchStatementWithDefault(r,{discriminant:u,preDefaultCases:i,defaultCase:n,postDefaultCases:a}){return super.reduceSwitchStatementWithDefault(r,{discriminant:u(),preDefaultCases:i.map(l=>l()),defaultCase:n(),postDefaultCases:a.map(l=>l())})}reduceTemplateElement(r){return super.reduceTemplateElement(r)}reduceTemplateExpression(r,{tag:u,elements:i}){return super.reduceTemplateExpression(r,{tag:u==null?null:u(),elements:i.map(n=>n())})}reduceThisExpression(r){return super.reduceThisExpression(r)}reduceThrowStatement(r,{expression:u}){return super.reduceThrowStatement(r,{expression:u()})}reduceTryCatchStatement(r,{body:u,catchClause:i}){return super.reduceTryCatchStatement(r,{body:u(),catchClause:i()})}reduceTryFinallyStatement(r,{body:u,catchClause:i,finalizer:n}){return super.reduceTryFinallyStatement(r,{body:u(),catchClause:i==null?null:i(),finalizer:n()})}reduceUnaryExpression(r,{operand:u}){return super.reduceUnaryExpression(r,{operand:u()})}reduceUpdateExpression(r,{operand:u}){return super.reduceUpdateExpression(r,{operand:u()})}reduceVariableDeclaration(r,{declarators:u}){return super.reduceVariableDeclaration(r,{declarators:u.map(i=>i())})}reduceVariableDeclarationStatement(r,{declaration:u}){return super.reduceVariableDeclarationStatement(r,{declaration:u()})}reduceVariableDeclarator(r,{binding:u,init:i}){return super.reduceVariableDeclarator(r,{binding:u(),init:i==null?null:i()})}reduceWhileStatement(r,{test:u,body:i}){return super.reduceWhileStatement(r,{test:u(),body:i()})}reduceWithStatement(r,{object:u,body:i}){return super.reduceWithStatement(r,{object:u(),body:i()})}reduceYieldExpression(r,{expression:u}){return super.reduceYieldExpression(r,{expression:u==null?null:u()})}reduceYieldGeneratorExpression(r,{expression:u}){return super.reduceYieldGeneratorExpression(r,{expression:u()})}}},memoize$1=function s(e){const r=new WeakMap;return{reduceArrayAssignmentTarget(u,i){if(r.has(u))return r.get(u);const n=e.reduceArrayAssignmentTarget(u,i);return r.set(u,n),n},reduceArrayBinding(u,i){if(r.has(u))return r.get(u);const n=e.reduceArrayBinding(u,i);return r.set(u,n),n},reduceArrayExpression(u,i){if(r.has(u))return r.get(u);const n=e.reduceArrayExpression(u,i);return r.set(u,n),n},reduceArrowExpression(u,i){if(r.has(u))return r.get(u);const n=e.reduceArrowExpression(u,i);return r.set(u,n),n},reduceAssignmentExpression(u,i){if(r.has(u))return r.get(u);const n=e.reduceAssignmentExpression(u,i);return r.set(u,n),n},reduceAssignmentTargetIdentifier(u){if(r.has(u))return r.get(u);const i=e.reduceAssignmentTargetIdentifier(u);return r.set(u,i),i},reduceAssignmentTargetPropertyIdentifier(u,i){if(r.has(u))return r.get(u);const n=e.reduceAssignmentTargetPropertyIdentifier(u,i);return r.set(u,n),n},reduceAssignmentTargetPropertyProperty(u,i){if(r.has(u))return r.get(u);const n=e.reduceAssignmentTargetPropertyProperty(u,i);return r.set(u,n),n},reduceAssignmentTargetWithDefault(u,i){if(r.has(u))return r.get(u);const n=e.reduceAssignmentTargetWithDefault(u,i);return r.set(u,n),n},reduceAwaitExpression(u,i){if(r.has(u))return r.get(u);const n=e.reduceAwaitExpression(u,i);return r.set(u,n),n},reduceBinaryExpression(u,i){if(r.has(u))return r.get(u);const n=e.reduceBinaryExpression(u,i);return r.set(u,n),n},reduceBindingIdentifier(u){if(r.has(u))return r.get(u);const i=e.reduceBindingIdentifier(u);return r.set(u,i),i},reduceBindingPropertyIdentifier(u,i){if(r.has(u))return r.get(u);const n=e.reduceBindingPropertyIdentifier(u,i);return r.set(u,n),n},reduceBindingPropertyProperty(u,i){if(r.has(u))return r.get(u);const n=e.reduceBindingPropertyProperty(u,i);return r.set(u,n),n},reduceBindingWithDefault(u,i){if(r.has(u))return r.get(u);const n=e.reduceBindingWithDefault(u,i);return r.set(u,n),n},reduceBlock(u,i){if(r.has(u))return r.get(u);const n=e.reduceBlock(u,i);return r.set(u,n),n},reduceBlockStatement(u,i){if(r.has(u))return r.get(u);const n=e.reduceBlockStatement(u,i);return r.set(u,n),n},reduceBreakStatement(u){if(r.has(u))return r.get(u);const i=e.reduceBreakStatement(u);return r.set(u,i),i},reduceCallExpression(u,i){if(r.has(u))return r.get(u);const n=e.reduceCallExpression(u,i);return r.set(u,n),n},reduceCatchClause(u,i){if(r.has(u))return r.get(u);const n=e.reduceCatchClause(u,i);return r.set(u,n),n},reduceClassDeclaration(u,i){if(r.has(u))return r.get(u);const n=e.reduceClassDeclaration(u,i);return r.set(u,n),n},reduceClassElement(u,i){if(r.has(u))return r.get(u);const n=e.reduceClassElement(u,i);return r.set(u,n),n},reduceClassExpression(u,i){if(r.has(u))return r.get(u);const n=e.reduceClassExpression(u,i);return r.set(u,n),n},reduceCompoundAssignmentExpression(u,i){if(r.has(u))return r.get(u);const n=e.reduceCompoundAssignmentExpression(u,i);return r.set(u,n),n},reduceComputedMemberAssignmentTarget(u,i){if(r.has(u))return r.get(u);const n=e.reduceComputedMemberAssignmentTarget(u,i);return r.set(u,n),n},reduceComputedMemberExpression(u,i){if(r.has(u))return r.get(u);const n=e.reduceComputedMemberExpression(u,i);return r.set(u,n),n},reduceComputedPropertyName(u,i){if(r.has(u))return r.get(u);const n=e.reduceComputedPropertyName(u,i);return r.set(u,n),n},reduceConditionalExpression(u,i){if(r.has(u))return r.get(u);const n=e.reduceConditionalExpression(u,i);return r.set(u,n),n},reduceContinueStatement(u){if(r.has(u))return r.get(u);const i=e.reduceContinueStatement(u);return r.set(u,i),i},reduceDataProperty(u,i){if(r.has(u))return r.get(u);const n=e.reduceDataProperty(u,i);return r.set(u,n),n},reduceDebuggerStatement(u){if(r.has(u))return r.get(u);const i=e.reduceDebuggerStatement(u);return r.set(u,i),i},reduceDirective(u){if(r.has(u))return r.get(u);const i=e.reduceDirective(u);return r.set(u,i),i},reduceDoWhileStatement(u,i){if(r.has(u))return r.get(u);const n=e.reduceDoWhileStatement(u,i);return r.set(u,n),n},reduceEmptyStatement(u){if(r.has(u))return r.get(u);const i=e.reduceEmptyStatement(u);return r.set(u,i),i},reduceExport(u,i){if(r.has(u))return r.get(u);const n=e.reduceExport(u,i);return r.set(u,n),n},reduceExportAllFrom(u){if(r.has(u))return r.get(u);const i=e.reduceExportAllFrom(u);return r.set(u,i),i},reduceExportDefault(u,i){if(r.has(u))return r.get(u);const n=e.reduceExportDefault(u,i);return r.set(u,n),n},reduceExportFrom(u,i){if(r.has(u))return r.get(u);const n=e.reduceExportFrom(u,i);return r.set(u,n),n},reduceExportFromSpecifier(u){if(r.has(u))return r.get(u);const i=e.reduceExportFromSpecifier(u);return r.set(u,i),i},reduceExportLocalSpecifier(u,i){if(r.has(u))return r.get(u);const n=e.reduceExportLocalSpecifier(u,i);return r.set(u,n),n},reduceExportLocals(u,i){if(r.has(u))return r.get(u);const n=e.reduceExportLocals(u,i);return r.set(u,n),n},reduceExpressionStatement(u,i){if(r.has(u))return r.get(u);const n=e.reduceExpressionStatement(u,i);return r.set(u,n),n},reduceForAwaitStatement(u,i){if(r.has(u))return r.get(u);const n=e.reduceForAwaitStatement(u,i);return r.set(u,n),n},reduceForInStatement(u,i){if(r.has(u))return r.get(u);const n=e.reduceForInStatement(u,i);return r.set(u,n),n},reduceForOfStatement(u,i){if(r.has(u))return r.get(u);const n=e.reduceForOfStatement(u,i);return r.set(u,n),n},reduceForStatement(u,i){if(r.has(u))return r.get(u);const n=e.reduceForStatement(u,i);return r.set(u,n),n},reduceFormalParameters(u,i){if(r.has(u))return r.get(u);const n=e.reduceFormalParameters(u,i);return r.set(u,n),n},reduceFunctionBody(u,i){if(r.has(u))return r.get(u);const n=e.reduceFunctionBody(u,i);return r.set(u,n),n},reduceFunctionDeclaration(u,i){if(r.has(u))return r.get(u);const n=e.reduceFunctionDeclaration(u,i);return r.set(u,n),n},reduceFunctionExpression(u,i){if(r.has(u))return r.get(u);const n=e.reduceFunctionExpression(u,i);return r.set(u,n),n},reduceGetter(u,i){if(r.has(u))return r.get(u);const n=e.reduceGetter(u,i);return r.set(u,n),n},reduceIdentifierExpression(u){if(r.has(u))return r.get(u);const i=e.reduceIdentifierExpression(u);return r.set(u,i),i},reduceIfStatement(u,i){if(r.has(u))return r.get(u);const n=e.reduceIfStatement(u,i);return r.set(u,n),n},reduceImport(u,i){if(r.has(u))return r.get(u);const n=e.reduceImport(u,i);return r.set(u,n),n},reduceImportNamespace(u,i){if(r.has(u))return r.get(u);const n=e.reduceImportNamespace(u,i);return r.set(u,n),n},reduceImportSpecifier(u,i){if(r.has(u))return r.get(u);const n=e.reduceImportSpecifier(u,i);return r.set(u,n),n},reduceLabeledStatement(u,i){if(r.has(u))return r.get(u);const n=e.reduceLabeledStatement(u,i);return r.set(u,n),n},reduceLiteralBooleanExpression(u){if(r.has(u))return r.get(u);const i=e.reduceLiteralBooleanExpression(u);return r.set(u,i),i},reduceLiteralInfinityExpression(u){if(r.has(u))return r.get(u);const i=e.reduceLiteralInfinityExpression(u);return r.set(u,i),i},reduceLiteralNullExpression(u){if(r.has(u))return r.get(u);const i=e.reduceLiteralNullExpression(u);return r.set(u,i),i},reduceLiteralNumericExpression(u){if(r.has(u))return r.get(u);const i=e.reduceLiteralNumericExpression(u);return r.set(u,i),i},reduceLiteralRegExpExpression(u){if(r.has(u))return r.get(u);const i=e.reduceLiteralRegExpExpression(u);return r.set(u,i),i},reduceLiteralStringExpression(u){if(r.has(u))return r.get(u);const i=e.reduceLiteralStringExpression(u);return r.set(u,i),i},reduceMethod(u,i){if(r.has(u))return r.get(u);const n=e.reduceMethod(u,i);return r.set(u,n),n},reduceModule(u,i){if(r.has(u))return r.get(u);const n=e.reduceModule(u,i);return r.set(u,n),n},reduceNewExpression(u,i){if(r.has(u))return r.get(u);const n=e.reduceNewExpression(u,i);return r.set(u,n),n},reduceNewTargetExpression(u){if(r.has(u))return r.get(u);const i=e.reduceNewTargetExpression(u);return r.set(u,i),i},reduceObjectAssignmentTarget(u,i){if(r.has(u))return r.get(u);const n=e.reduceObjectAssignmentTarget(u,i);return r.set(u,n),n},reduceObjectBinding(u,i){if(r.has(u))return r.get(u);const n=e.reduceObjectBinding(u,i);return r.set(u,n),n},reduceObjectExpression(u,i){if(r.has(u))return r.get(u);const n=e.reduceObjectExpression(u,i);return r.set(u,n),n},reduceReturnStatement(u,i){if(r.has(u))return r.get(u);const n=e.reduceReturnStatement(u,i);return r.set(u,n),n},reduceScript(u,i){if(r.has(u))return r.get(u);const n=e.reduceScript(u,i);return r.set(u,n),n},reduceSetter(u,i){if(r.has(u))return r.get(u);const n=e.reduceSetter(u,i);return r.set(u,n),n},reduceShorthandProperty(u,i){if(r.has(u))return r.get(u);const n=e.reduceShorthandProperty(u,i);return r.set(u,n),n},reduceSpreadElement(u,i){if(r.has(u))return r.get(u);const n=e.reduceSpreadElement(u,i);return r.set(u,n),n},reduceSpreadProperty(u,i){if(r.has(u))return r.get(u);const n=e.reduceSpreadProperty(u,i);return r.set(u,n),n},reduceStaticMemberAssignmentTarget(u,i){if(r.has(u))return r.get(u);const n=e.reduceStaticMemberAssignmentTarget(u,i);return r.set(u,n),n},reduceStaticMemberExpression(u,i){if(r.has(u))return r.get(u);const n=e.reduceStaticMemberExpression(u,i);return r.set(u,n),n},reduceStaticPropertyName(u){if(r.has(u))return r.get(u);const i=e.reduceStaticPropertyName(u);return r.set(u,i),i},reduceSuper(u){if(r.has(u))return r.get(u);const i=e.reduceSuper(u);return r.set(u,i),i},reduceSwitchCase(u,i){if(r.has(u))return r.get(u);const n=e.reduceSwitchCase(u,i);return r.set(u,n),n},reduceSwitchDefault(u,i){if(r.has(u))return r.get(u);const n=e.reduceSwitchDefault(u,i);return r.set(u,n),n},reduceSwitchStatement(u,i){if(r.has(u))return r.get(u);const n=e.reduceSwitchStatement(u,i);return r.set(u,n),n},reduceSwitchStatementWithDefault(u,i){if(r.has(u))return r.get(u);const n=e.reduceSwitchStatementWithDefault(u,i);return r.set(u,n),n},reduceTemplateElement(u){if(r.has(u))return r.get(u);const i=e.reduceTemplateElement(u);return r.set(u,i),i},reduceTemplateExpression(u,i){if(r.has(u))return r.get(u);const n=e.reduceTemplateExpression(u,i);return r.set(u,n),n},reduceThisExpression(u){if(r.has(u))return r.get(u);const i=e.reduceThisExpression(u);return r.set(u,i),i},reduceThrowStatement(u,i){if(r.has(u))return r.get(u);const n=e.reduceThrowStatement(u,i);return r.set(u,n),n},reduceTryCatchStatement(u,i){if(r.has(u))return r.get(u);const n=e.reduceTryCatchStatement(u,i);return r.set(u,n),n},reduceTryFinallyStatement(u,i){if(r.has(u))return r.get(u);const n=e.reduceTryFinallyStatement(u,i);return r.set(u,n),n},reduceUnaryExpression(u,i){if(r.has(u))return r.get(u);const n=e.reduceUnaryExpression(u,i);return r.set(u,n),n},reduceUpdateExpression(u,i){if(r.has(u))return r.get(u);const n=e.reduceUpdateExpression(u,i);return r.set(u,n),n},reduceVariableDeclaration(u,i){if(r.has(u))return r.get(u);const n=e.reduceVariableDeclaration(u,i);return r.set(u,n),n},reduceVariableDeclarationStatement(u,i){if(r.has(u))return r.get(u);const n=e.reduceVariableDeclarationStatement(u,i);return r.set(u,n),n},reduceVariableDeclarator(u,i){if(r.has(u))return r.get(u);const n=e.reduceVariableDeclarator(u,i);return r.set(u,n),n},reduceWhileStatement(u,i){if(r.has(u))return r.get(u);const n=e.reduceWhileStatement(u,i);return r.set(u,n),n},reduceWithStatement(u,i){if(r.has(u))return r.get(u);const n=e.reduceWithStatement(u,i);return r.set(u,n),n},reduceYieldExpression(u,i){if(r.has(u))return r.get(u);const n=e.reduceYieldExpression(u,i);return r.set(u,n),n},reduceYieldGeneratorExpression(u,i){if(r.has(u))return r.get(u);const n=e.reduceYieldGeneratorExpression(u,i);return r.set(u,n),n}}};const Shift$1=gen;var cloneReducer=class{reduceArrayAssignmentTarget(e,{elements:r,rest:u}){return new Shift$1.ArrayAssignmentTarget({elements:r,rest:u})}reduceArrayBinding(e,{elements:r,rest:u}){return new Shift$1.ArrayBinding({elements:r,rest:u})}reduceArrayExpression(e,{elements:r}){return new Shift$1.ArrayExpression({elements:r})}reduceArrowExpression(e,{params:r,body:u}){return new Shift$1.ArrowExpression({isAsync:e.isAsync,params:r,body:u})}reduceAssignmentExpression(e,{binding:r,expression:u}){return new Shift$1.AssignmentExpression({binding:r,expression:u})}reduceAssignmentTargetIdentifier(e){return new Shift$1.AssignmentTargetIdentifier({name:e.name})}reduceAssignmentTargetPropertyIdentifier(e,{binding:r,init:u}){return new Shift$1.AssignmentTargetPropertyIdentifier({binding:r,init:u})}reduceAssignmentTargetPropertyProperty(e,{name:r,binding:u}){return new Shift$1.AssignmentTargetPropertyProperty({name:r,binding:u})}reduceAssignmentTargetWithDefault(e,{binding:r,init:u}){return new Shift$1.AssignmentTargetWithDefault({binding:r,init:u})}reduceAwaitExpression(e,{expression:r}){return new Shift$1.AwaitExpression({expression:r})}reduceBinaryExpression(e,{left:r,right:u}){return new Shift$1.BinaryExpression({left:r,operator:e.operator,right:u})}reduceBindingIdentifier(e){return new Shift$1.BindingIdentifier({name:e.name})}reduceBindingPropertyIdentifier(e,{binding:r,init:u}){return new Shift$1.BindingPropertyIdentifier({binding:r,init:u})}reduceBindingPropertyProperty(e,{name:r,binding:u}){return new Shift$1.BindingPropertyProperty({name:r,binding:u})}reduceBindingWithDefault(e,{binding:r,init:u}){return new Shift$1.BindingWithDefault({binding:r,init:u})}reduceBlock(e,{statements:r}){return new Shift$1.Block({statements:r})}reduceBlockStatement(e,{block:r}){return new Shift$1.BlockStatement({block:r})}reduceBreakStatement(e){return new Shift$1.BreakStatement({label:e.label})}reduceCallExpression(e,{callee:r,arguments:u}){return new Shift$1.CallExpression({callee:r,arguments:u})}reduceCatchClause(e,{binding:r,body:u}){return new Shift$1.CatchClause({binding:r,body:u})}reduceClassDeclaration(e,{name:r,super:u,elements:i}){return new Shift$1.ClassDeclaration({name:r,super:u,elements:i})}reduceClassElement(e,{method:r}){return new Shift$1.ClassElement({isStatic:e.isStatic,method:r})}reduceClassExpression(e,{name:r,super:u,elements:i}){return new Shift$1.ClassExpression({name:r,super:u,elements:i})}reduceCompoundAssignmentExpression(e,{binding:r,expression:u}){return new Shift$1.CompoundAssignmentExpression({binding:r,operator:e.operator,expression:u})}reduceComputedMemberAssignmentTarget(e,{object:r,expression:u}){return new Shift$1.ComputedMemberAssignmentTarget({object:r,expression:u})}reduceComputedMemberExpression(e,{object:r,expression:u}){return new Shift$1.ComputedMemberExpression({object:r,expression:u})}reduceComputedPropertyName(e,{expression:r}){return new Shift$1.ComputedPropertyName({expression:r})}reduceConditionalExpression(e,{test:r,consequent:u,alternate:i}){return new Shift$1.ConditionalExpression({test:r,consequent:u,alternate:i})}reduceContinueStatement(e){return new Shift$1.ContinueStatement({label:e.label})}reduceDataProperty(e,{name:r,expression:u}){return new Shift$1.DataProperty({name:r,expression:u})}reduceDebuggerStatement(e){return new Shift$1.DebuggerStatement}reduceDirective(e){return new Shift$1.Directive({rawValue:e.rawValue})}reduceDoWhileStatement(e,{body:r,test:u}){return new Shift$1.DoWhileStatement({body:r,test:u})}reduceEmptyStatement(e){return new Shift$1.EmptyStatement}reduceExport(e,{declaration:r}){return new Shift$1.Export({declaration:r})}reduceExportAllFrom(e){return new Shift$1.ExportAllFrom({moduleSpecifier:e.moduleSpecifier})}reduceExportDefault(e,{body:r}){return new Shift$1.ExportDefault({body:r})}reduceExportFrom(e,{namedExports:r}){return new Shift$1.ExportFrom({namedExports:r,moduleSpecifier:e.moduleSpecifier})}reduceExportFromSpecifier(e){return new Shift$1.ExportFromSpecifier({name:e.name,exportedName:e.exportedName})}reduceExportLocalSpecifier(e,{name:r}){return new Shift$1.ExportLocalSpecifier({name:r,exportedName:e.exportedName})}reduceExportLocals(e,{namedExports:r}){return new Shift$1.ExportLocals({namedExports:r})}reduceExpressionStatement(e,{expression:r}){return new Shift$1.ExpressionStatement({expression:r})}reduceForAwaitStatement(e,{left:r,right:u,body:i}){return new Shift$1.ForAwaitStatement({left:r,right:u,body:i})}reduceForInStatement(e,{left:r,right:u,body:i}){return new Shift$1.ForInStatement({left:r,right:u,body:i})}reduceForOfStatement(e,{left:r,right:u,body:i}){return new Shift$1.ForOfStatement({left:r,right:u,body:i})}reduceForStatement(e,{init:r,test:u,update:i,body:n}){return new Shift$1.ForStatement({init:r,test:u,update:i,body:n})}reduceFormalParameters(e,{items:r,rest:u}){return new Shift$1.FormalParameters({items:r,rest:u})}reduceFunctionBody(e,{directives:r,statements:u}){return new Shift$1.FunctionBody({directives:r,statements:u})}reduceFunctionDeclaration(e,{name:r,params:u,body:i}){return new Shift$1.FunctionDeclaration({isAsync:e.isAsync,isGenerator:e.isGenerator,name:r,params:u,body:i})}reduceFunctionExpression(e,{name:r,params:u,body:i}){return new Shift$1.FunctionExpression({isAsync:e.isAsync,isGenerator:e.isGenerator,name:r,params:u,body:i})}reduceGetter(e,{name:r,body:u}){return new Shift$1.Getter({name:r,body:u})}reduceIdentifierExpression(e){return new Shift$1.IdentifierExpression({name:e.name})}reduceIfStatement(e,{test:r,consequent:u,alternate:i}){return new Shift$1.IfStatement({test:r,consequent:u,alternate:i})}reduceImport(e,{defaultBinding:r,namedImports:u}){return new Shift$1.Import({defaultBinding:r,namedImports:u,moduleSpecifier:e.moduleSpecifier})}reduceImportNamespace(e,{defaultBinding:r,namespaceBinding:u}){return new Shift$1.ImportNamespace({defaultBinding:r,namespaceBinding:u,moduleSpecifier:e.moduleSpecifier})}reduceImportSpecifier(e,{binding:r}){return new Shift$1.ImportSpecifier({name:e.name,binding:r})}reduceLabeledStatement(e,{body:r}){return new Shift$1.LabeledStatement({label:e.label,body:r})}reduceLiteralBooleanExpression(e){return new Shift$1.LiteralBooleanExpression({value:e.value})}reduceLiteralInfinityExpression(e){return new Shift$1.LiteralInfinityExpression}reduceLiteralNullExpression(e){return new Shift$1.LiteralNullExpression}reduceLiteralNumericExpression(e){return new Shift$1.LiteralNumericExpression({value:e.value})}reduceLiteralRegExpExpression(e){return new Shift$1.LiteralRegExpExpression({pattern:e.pattern,global:e.global,ignoreCase:e.ignoreCase,multiLine:e.multiLine,dotAll:e.dotAll,unicode:e.unicode,sticky:e.sticky})}reduceLiteralStringExpression(e){return new Shift$1.LiteralStringExpression({value:e.value})}reduceMethod(e,{name:r,params:u,body:i}){return new Shift$1.Method({isAsync:e.isAsync,isGenerator:e.isGenerator,name:r,params:u,body:i})}reduceModule(e,{directives:r,items:u}){return new Shift$1.Module({directives:r,items:u})}reduceNewExpression(e,{callee:r,arguments:u}){return new Shift$1.NewExpression({callee:r,arguments:u})}reduceNewTargetExpression(e){return new Shift$1.NewTargetExpression}reduceObjectAssignmentTarget(e,{properties:r,rest:u}){return new Shift$1.ObjectAssignmentTarget({properties:r,rest:u})}reduceObjectBinding(e,{properties:r,rest:u}){return new Shift$1.ObjectBinding({properties:r,rest:u})}reduceObjectExpression(e,{properties:r}){return new Shift$1.ObjectExpression({properties:r})}reduceReturnStatement(e,{expression:r}){return new Shift$1.ReturnStatement({expression:r})}reduceScript(e,{directives:r,statements:u}){return new Shift$1.Script({directives:r,statements:u})}reduceSetter(e,{name:r,param:u,body:i}){return new Shift$1.Setter({name:r,param:u,body:i})}reduceShorthandProperty(e,{name:r}){return new Shift$1.ShorthandProperty({name:r})}reduceSpreadElement(e,{expression:r}){return new Shift$1.SpreadElement({expression:r})}reduceSpreadProperty(e,{expression:r}){return new Shift$1.SpreadProperty({expression:r})}reduceStaticMemberAssignmentTarget(e,{object:r}){return new Shift$1.StaticMemberAssignmentTarget({object:r,property:e.property})}reduceStaticMemberExpression(e,{object:r}){return new Shift$1.StaticMemberExpression({object:r,property:e.property})}reduceStaticPropertyName(e){return new Shift$1.StaticPropertyName({value:e.value})}reduceSuper(e){return new Shift$1.Super}reduceSwitchCase(e,{test:r,consequent:u}){return new Shift$1.SwitchCase({test:r,consequent:u})}reduceSwitchDefault(e,{consequent:r}){return new Shift$1.SwitchDefault({consequent:r})}reduceSwitchStatement(e,{discriminant:r,cases:u}){return new Shift$1.SwitchStatement({discriminant:r,cases:u})}reduceSwitchStatementWithDefault(e,{discriminant:r,preDefaultCases:u,defaultCase:i,postDefaultCases:n}){return new Shift$1.SwitchStatementWithDefault({discriminant:r,preDefaultCases:u,defaultCase:i,postDefaultCases:n})}reduceTemplateElement(e){return new Shift$1.TemplateElement({rawValue:e.rawValue})}reduceTemplateExpression(e,{tag:r,elements:u}){return new Shift$1.TemplateExpression({tag:r,elements:u})}reduceThisExpression(e){return new Shift$1.ThisExpression}reduceThrowStatement(e,{expression:r}){return new Shift$1.ThrowStatement({expression:r})}reduceTryCatchStatement(e,{body:r,catchClause:u}){return new Shift$1.TryCatchStatement({body:r,catchClause:u})}reduceTryFinallyStatement(e,{body:r,catchClause:u,finalizer:i}){return new Shift$1.TryFinallyStatement({body:r,catchClause:u,finalizer:i})}reduceUnaryExpression(e,{operand:r}){return new Shift$1.UnaryExpression({operator:e.operator,operand:r})}reduceUpdateExpression(e,{operand:r}){return new Shift$1.UpdateExpression({isPrefix:e.isPrefix,operator:e.operator,operand:r})}reduceVariableDeclaration(e,{declarators:r}){return new Shift$1.VariableDeclaration({kind:e.kind,declarators:r})}reduceVariableDeclarationStatement(e,{declaration:r}){return new Shift$1.VariableDeclarationStatement({declaration:r})}reduceVariableDeclarator(e,{binding:r,init:u}){return new Shift$1.VariableDeclarator({binding:r,init:u})}reduceWhileStatement(e,{test:r,body:u}){return new Shift$1.WhileStatement({test:r,body:u})}reduceWithStatement(e,{object:r,body:u}){return new Shift$1.WithStatement({object:r,body:u})}reduceYieldExpression(e,{expression:r}){return new Shift$1.YieldExpression({expression:r})}reduceYieldGeneratorExpression(e,{expression:r}){return new Shift$1.YieldGeneratorExpression({expression:r})}};const Shift=gen;var lazyCloneReducer=class{reduceArrayAssignmentTarget(e,{elements:r,rest:u}){return e.elements.length===r.length&&e.elements.every((i,n)=>i===r[n])&&e.rest===u?e:new Shift.ArrayAssignmentTarget({elements:r,rest:u})}reduceArrayBinding(e,{elements:r,rest:u}){return e.elements.length===r.length&&e.elements.every((i,n)=>i===r[n])&&e.rest===u?e:new Shift.ArrayBinding({elements:r,rest:u})}reduceArrayExpression(e,{elements:r}){return e.elements.length===r.length&&e.elements.every((u,i)=>u===r[i])?e:new Shift.ArrayExpression({elements:r})}reduceArrowExpression(e,{params:r,body:u}){return e.params===r&&e.body===u?e:new Shift.ArrowExpression({isAsync:e.isAsync,params:r,body:u})}reduceAssignmentExpression(e,{binding:r,expression:u}){return e.binding===r&&e.expression===u?e:new Shift.AssignmentExpression({binding:r,expression:u})}reduceAssignmentTargetIdentifier(e){return e}reduceAssignmentTargetPropertyIdentifier(e,{binding:r,init:u}){return e.binding===r&&e.init===u?e:new Shift.AssignmentTargetPropertyIdentifier({binding:r,init:u})}reduceAssignmentTargetPropertyProperty(e,{name:r,binding:u}){return e.name===r&&e.binding===u?e:new Shift.AssignmentTargetPropertyProperty({name:r,binding:u})}reduceAssignmentTargetWithDefault(e,{binding:r,init:u}){return e.binding===r&&e.init===u?e:new Shift.AssignmentTargetWithDefault({binding:r,init:u})}reduceAwaitExpression(e,{expression:r}){return e.expression===r?e:new Shift.AwaitExpression({expression:r})}reduceBinaryExpression(e,{left:r,right:u}){return e.left===r&&e.right===u?e:new Shift.BinaryExpression({left:r,operator:e.operator,right:u})}reduceBindingIdentifier(e){return e}reduceBindingPropertyIdentifier(e,{binding:r,init:u}){return e.binding===r&&e.init===u?e:new Shift.BindingPropertyIdentifier({binding:r,init:u})}reduceBindingPropertyProperty(e,{name:r,binding:u}){return e.name===r&&e.binding===u?e:new Shift.BindingPropertyProperty({name:r,binding:u})}reduceBindingWithDefault(e,{binding:r,init:u}){return e.binding===r&&e.init===u?e:new Shift.BindingWithDefault({binding:r,init:u})}reduceBlock(e,{statements:r}){return e.statements.length===r.length&&e.statements.every((u,i)=>u===r[i])?e:new Shift.Block({statements:r})}reduceBlockStatement(e,{block:r}){return e.block===r?e:new Shift.BlockStatement({block:r})}reduceBreakStatement(e){return e}reduceCallExpression(e,{callee:r,arguments:u}){return e.callee===r&&e.arguments.length===u.length&&e.arguments.every((i,n)=>i===u[n])?e:new Shift.CallExpression({callee:r,arguments:u})}reduceCatchClause(e,{binding:r,body:u}){return e.binding===r&&e.body===u?e:new Shift.CatchClause({binding:r,body:u})}reduceClassDeclaration(e,{name:r,super:u,elements:i}){return e.name===r&&e.super===u&&e.elements.length===i.length&&e.elements.every((n,a)=>n===i[a])?e:new Shift.ClassDeclaration({name:r,super:u,elements:i})}reduceClassElement(e,{method:r}){return e.method===r?e:new Shift.ClassElement({isStatic:e.isStatic,method:r})}reduceClassExpression(e,{name:r,super:u,elements:i}){return e.name===r&&e.super===u&&e.elements.length===i.length&&e.elements.every((n,a)=>n===i[a])?e:new Shift.ClassExpression({name:r,super:u,elements:i})}reduceCompoundAssignmentExpression(e,{binding:r,expression:u}){return e.binding===r&&e.expression===u?e:new Shift.CompoundAssignmentExpression({binding:r,operator:e.operator,expression:u})}reduceComputedMemberAssignmentTarget(e,{object:r,expression:u}){return e.object===r&&e.expression===u?e:new Shift.ComputedMemberAssignmentTarget({object:r,expression:u})}reduceComputedMemberExpression(e,{object:r,expression:u}){return e.object===r&&e.expression===u?e:new Shift.ComputedMemberExpression({object:r,expression:u})}reduceComputedPropertyName(e,{expression:r}){return e.expression===r?e:new Shift.ComputedPropertyName({expression:r})}reduceConditionalExpression(e,{test:r,consequent:u,alternate:i}){return e.test===r&&e.consequent===u&&e.alternate===i?e:new Shift.ConditionalExpression({test:r,consequent:u,alternate:i})}reduceContinueStatement(e){return e}reduceDataProperty(e,{name:r,expression:u}){return e.name===r&&e.expression===u?e:new Shift.DataProperty({name:r,expression:u})}reduceDebuggerStatement(e){return e}reduceDirective(e){return e}reduceDoWhileStatement(e,{body:r,test:u}){return e.body===r&&e.test===u?e:new Shift.DoWhileStatement({body:r,test:u})}reduceEmptyStatement(e){return e}reduceExport(e,{declaration:r}){return e.declaration===r?e:new Shift.Export({declaration:r})}reduceExportAllFrom(e){return e}reduceExportDefault(e,{body:r}){return e.body===r?e:new Shift.ExportDefault({body:r})}reduceExportFrom(e,{namedExports:r}){return e.namedExports.length===r.length&&e.namedExports.every((u,i)=>u===r[i])?e:new Shift.ExportFrom({namedExports:r,moduleSpecifier:e.moduleSpecifier})}reduceExportFromSpecifier(e){return e}reduceExportLocalSpecifier(e,{name:r}){return e.name===r?e:new Shift.ExportLocalSpecifier({name:r,exportedName:e.exportedName})}reduceExportLocals(e,{namedExports:r}){return e.namedExports.length===r.length&&e.namedExports.every((u,i)=>u===r[i])?e:new Shift.ExportLocals({namedExports:r})}reduceExpressionStatement(e,{expression:r}){return e.expression===r?e:new Shift.ExpressionStatement({expression:r})}reduceForAwaitStatement(e,{left:r,right:u,body:i}){return e.left===r&&e.right===u&&e.body===i?e:new Shift.ForAwaitStatement({left:r,right:u,body:i})}reduceForInStatement(e,{left:r,right:u,body:i}){return e.left===r&&e.right===u&&e.body===i?e:new Shift.ForInStatement({left:r,right:u,body:i})}reduceForOfStatement(e,{left:r,right:u,body:i}){return e.left===r&&e.right===u&&e.body===i?e:new Shift.ForOfStatement({left:r,right:u,body:i})}reduceForStatement(e,{init:r,test:u,update:i,body:n}){return e.init===r&&e.test===u&&e.update===i&&e.body===n?e:new Shift.ForStatement({init:r,test:u,update:i,body:n})}reduceFormalParameters(e,{items:r,rest:u}){return e.items.length===r.length&&e.items.every((i,n)=>i===r[n])&&e.rest===u?e:new Shift.FormalParameters({items:r,rest:u})}reduceFunctionBody(e,{directives:r,statements:u}){return e.directives.length===r.length&&e.directives.every((i,n)=>i===r[n])&&e.statements.length===u.length&&e.statements.every((i,n)=>i===u[n])?e:new Shift.FunctionBody({directives:r,statements:u})}reduceFunctionDeclaration(e,{name:r,params:u,body:i}){return e.name===r&&e.params===u&&e.body===i?e:new Shift.FunctionDeclaration({isAsync:e.isAsync,isGenerator:e.isGenerator,name:r,params:u,body:i})}reduceFunctionExpression(e,{name:r,params:u,body:i}){return e.name===r&&e.params===u&&e.body===i?e:new Shift.FunctionExpression({isAsync:e.isAsync,isGenerator:e.isGenerator,name:r,params:u,body:i})}reduceGetter(e,{name:r,body:u}){return e.name===r&&e.body===u?e:new Shift.Getter({name:r,body:u})}reduceIdentifierExpression(e){return e}reduceIfStatement(e,{test:r,consequent:u,alternate:i}){return e.test===r&&e.consequent===u&&e.alternate===i?e:new Shift.IfStatement({test:r,consequent:u,alternate:i})}reduceImport(e,{defaultBinding:r,namedImports:u}){return e.defaultBinding===r&&e.namedImports.length===u.length&&e.namedImports.every((i,n)=>i===u[n])?e:new Shift.Import({defaultBinding:r,namedImports:u,moduleSpecifier:e.moduleSpecifier})}reduceImportNamespace(e,{defaultBinding:r,namespaceBinding:u}){return e.defaultBinding===r&&e.namespaceBinding===u?e:new Shift.ImportNamespace({defaultBinding:r,namespaceBinding:u,moduleSpecifier:e.moduleSpecifier})}reduceImportSpecifier(e,{binding:r}){return e.binding===r?e:new Shift.ImportSpecifier({name:e.name,binding:r})}reduceLabeledStatement(e,{body:r}){return e.body===r?e:new Shift.LabeledStatement({label:e.label,body:r})}reduceLiteralBooleanExpression(e){return e}reduceLiteralInfinityExpression(e){return e}reduceLiteralNullExpression(e){return e}reduceLiteralNumericExpression(e){return e}reduceLiteralRegExpExpression(e){return e}reduceLiteralStringExpression(e){return e}reduceMethod(e,{name:r,params:u,body:i}){return e.name===r&&e.params===u&&e.body===i?e:new Shift.Method({isAsync:e.isAsync,isGenerator:e.isGenerator,name:r,params:u,body:i})}reduceModule(e,{directives:r,items:u}){return e.directives.length===r.length&&e.directives.every((i,n)=>i===r[n])&&e.items.length===u.length&&e.items.every((i,n)=>i===u[n])?e:new Shift.Module({directives:r,items:u})}reduceNewExpression(e,{callee:r,arguments:u}){return e.callee===r&&e.arguments.length===u.length&&e.arguments.every((i,n)=>i===u[n])?e:new Shift.NewExpression({callee:r,arguments:u})}reduceNewTargetExpression(e){return e}reduceObjectAssignmentTarget(e,{properties:r,rest:u}){return e.properties.length===r.length&&e.properties.every((i,n)=>i===r[n])&&e.rest===u?e:new Shift.ObjectAssignmentTarget({properties:r,rest:u})}reduceObjectBinding(e,{properties:r,rest:u}){return e.properties.length===r.length&&e.properties.every((i,n)=>i===r[n])&&e.rest===u?e:new Shift.ObjectBinding({properties:r,rest:u})}reduceObjectExpression(e,{properties:r}){return e.properties.length===r.length&&e.properties.every((u,i)=>u===r[i])?e:new Shift.ObjectExpression({properties:r})}reduceReturnStatement(e,{expression:r}){return e.expression===r?e:new Shift.ReturnStatement({expression:r})}reduceScript(e,{directives:r,statements:u}){return e.directives.length===r.length&&e.directives.every((i,n)=>i===r[n])&&e.statements.length===u.length&&e.statements.every((i,n)=>i===u[n])?e:new Shift.Script({directives:r,statements:u})}reduceSetter(e,{name:r,param:u,body:i}){return e.name===r&&e.param===u&&e.body===i?e:new Shift.Setter({name:r,param:u,body:i})}reduceShorthandProperty(e,{name:r}){return e.name===r?e:new Shift.ShorthandProperty({name:r})}reduceSpreadElement(e,{expression:r}){return e.expression===r?e:new Shift.SpreadElement({expression:r})}reduceSpreadProperty(e,{expression:r}){return e.expression===r?e:new Shift.SpreadProperty({expression:r})}reduceStaticMemberAssignmentTarget(e,{object:r}){return e.object===r?e:new Shift.StaticMemberAssignmentTarget({object:r,property:e.property})}reduceStaticMemberExpression(e,{object:r}){return e.object===r?e:new Shift.StaticMemberExpression({object:r,property:e.property})}reduceStaticPropertyName(e){return e}reduceSuper(e){return e}reduceSwitchCase(e,{test:r,consequent:u}){return e.test===r&&e.consequent.length===u.length&&e.consequent.every((i,n)=>i===u[n])?e:new Shift.SwitchCase({test:r,consequent:u})}reduceSwitchDefault(e,{consequent:r}){return e.consequent.length===r.length&&e.consequent.every((u,i)=>u===r[i])?e:new Shift.SwitchDefault({consequent:r})}reduceSwitchStatement(e,{discriminant:r,cases:u}){return e.discriminant===r&&e.cases.length===u.length&&e.cases.every((i,n)=>i===u[n])?e:new Shift.SwitchStatement({discriminant:r,cases:u})}reduceSwitchStatementWithDefault(e,{discriminant:r,preDefaultCases:u,defaultCase:i,postDefaultCases:n}){return e.discriminant===r&&e.preDefaultCases.length===u.length&&e.preDefaultCases.every((a,l)=>a===u[l])&&e.defaultCase===i&&e.postDefaultCases.length===n.length&&e.postDefaultCases.every((a,l)=>a===n[l])?e:new Shift.SwitchStatementWithDefault({discriminant:r,preDefaultCases:u,defaultCase:i,postDefaultCases:n})}reduceTemplateElement(e){return e}reduceTemplateExpression(e,{tag:r,elements:u}){return e.tag===r&&e.elements.length===u.length&&e.elements.every((i,n)=>i===u[n])?e:new Shift.TemplateExpression({tag:r,elements:u})}reduceThisExpression(e){return e}reduceThrowStatement(e,{expression:r}){return e.expression===r?e:new Shift.ThrowStatement({expression:r})}reduceTryCatchStatement(e,{body:r,catchClause:u}){return e.body===r&&e.catchClause===u?e:new Shift.TryCatchStatement({body:r,catchClause:u})}reduceTryFinallyStatement(e,{body:r,catchClause:u,finalizer:i}){return e.body===r&&e.catchClause===u&&e.finalizer===i?e:new Shift.TryFinallyStatement({body:r,catchClause:u,finalizer:i})}reduceUnaryExpression(e,{operand:r}){return e.operand===r?e:new Shift.UnaryExpression({operator:e.operator,operand:r})}reduceUpdateExpression(e,{operand:r}){return e.operand===r?e:new Shift.UpdateExpression({isPrefix:e.isPrefix,operator:e.operator,operand:r})}reduceVariableDeclaration(e,{declarators:r}){return e.declarators.length===r.length&&e.declarators.every((u,i)=>u===r[i])?e:new Shift.VariableDeclaration({kind:e.kind,declarators:r})}reduceVariableDeclarationStatement(e,{declaration:r}){return e.declaration===r?e:new Shift.VariableDeclarationStatement({declaration:r})}reduceVariableDeclarator(e,{binding:r,init:u}){return e.binding===r&&e.init===u?e:new Shift.VariableDeclarator({binding:r,init:u})}reduceWhileStatement(e,{test:r,body:u}){return e.test===r&&e.body===u?e:new Shift.WhileStatement({test:r,body:u})}reduceWithStatement(e,{object:r,body:u}){return e.object===r&&e.body===u?e:new Shift.WithStatement({object:r,body:u})}reduceYieldExpression(e,{expression:r}){return e.expression===r?e:new Shift.YieldExpression({expression:r})}reduceYieldGeneratorExpression(e,{expression:r}){return e.expression===r?e:new Shift.YieldGeneratorExpression({expression:r})}},monoidalReducer=class{constructor(e){let r=e.empty();this.identity=r;let u;if(e.prototype&&typeof e.prototype.concat=="function")u=Function.prototype.call.bind(e.prototype.concat);else if(typeof e.concat=="function")u=e.concat;else throw new TypeError("Monoid must provide a `concat` method");this.append=(...i)=>i.reduce(u,r)}reduceArrayAssignmentTarget(e,{elements:r,rest:u}){return this.append(...r.filter(i=>i!=null),u==null?this.identity:u)}reduceArrayBinding(e,{elements:r,rest:u}){return this.append(...r.filter(i=>i!=null),u==null?this.identity:u)}reduceArrayExpression(e,{elements:r}){return this.append(...r.filter(u=>u!=null))}reduceArrowExpression(e,{params:r,body:u}){return this.append(r,u)}reduceAssignmentExpression(e,{binding:r,expression:u}){return this.append(r,u)}reduceAssignmentTargetIdentifier(e){return this.identity}reduceAssignmentTargetPropertyIdentifier(e,{binding:r,init:u}){return this.append(r,u==null?this.identity:u)}reduceAssignmentTargetPropertyProperty(e,{name:r,binding:u}){return this.append(r,u)}reduceAssignmentTargetWithDefault(e,{binding:r,init:u}){return this.append(r,u)}reduceAwaitExpression(e,{expression:r}){return r}reduceBinaryExpression(e,{left:r,right:u}){return this.append(r,u)}reduceBindingIdentifier(e){return this.identity}reduceBindingPropertyIdentifier(e,{binding:r,init:u}){return this.append(r,u==null?this.identity:u)}reduceBindingPropertyProperty(e,{name:r,binding:u}){return this.append(r,u)}reduceBindingWithDefault(e,{binding:r,init:u}){return this.append(r,u)}reduceBlock(e,{statements:r}){return this.append(...r)}reduceBlockStatement(e,{block:r}){return r}reduceBreakStatement(e){return this.identity}reduceCallExpression(e,{callee:r,arguments:u}){return this.append(r,...u)}reduceCatchClause(e,{binding:r,body:u}){return this.append(r==null?this.identity:r,u)}reduceClassDeclaration(e,{name:r,super:u,elements:i}){return this.append(r,u==null?this.identity:u,...i)}reduceClassElement(e,{method:r}){return r}reduceClassExpression(e,{name:r,super:u,elements:i}){return this.append(r==null?this.identity:r,u==null?this.identity:u,...i)}reduceCompoundAssignmentExpression(e,{binding:r,expression:u}){return this.append(r,u)}reduceComputedMemberAssignmentTarget(e,{object:r,expression:u}){return this.append(r,u)}reduceComputedMemberExpression(e,{object:r,expression:u}){return this.append(r,u)}reduceComputedPropertyName(e,{expression:r}){return r}reduceConditionalExpression(e,{test:r,consequent:u,alternate:i}){return this.append(r,u,i)}reduceContinueStatement(e){return this.identity}reduceDataProperty(e,{name:r,expression:u}){return this.append(r,u)}reduceDebuggerStatement(e){return this.identity}reduceDirective(e){return this.identity}reduceDoWhileStatement(e,{body:r,test:u}){return this.append(r,u)}reduceEmptyStatement(e){return this.identity}reduceExport(e,{declaration:r}){return r}reduceExportAllFrom(e){return this.identity}reduceExportDefault(e,{body:r}){return r}reduceExportFrom(e,{namedExports:r}){return this.append(...r)}reduceExportFromSpecifier(e){return this.identity}reduceExportLocalSpecifier(e,{name:r}){return r}reduceExportLocals(e,{namedExports:r}){return this.append(...r)}reduceExpressionStatement(e,{expression:r}){return r}reduceForAwaitStatement(e,{left:r,right:u,body:i}){return this.append(r,u,i)}reduceForInStatement(e,{left:r,right:u,body:i}){return this.append(r,u,i)}reduceForOfStatement(e,{left:r,right:u,body:i}){return this.append(r,u,i)}reduceForStatement(e,{init:r,test:u,update:i,body:n}){return this.append(r==null?this.identity:r,u==null?this.identity:u,i==null?this.identity:i,n)}reduceFormalParameters(e,{items:r,rest:u}){return this.append(...r,u==null?this.identity:u)}reduceFunctionBody(e,{directives:r,statements:u}){return this.append(...r,...u)}reduceFunctionDeclaration(e,{name:r,params:u,body:i}){return this.append(r,u,i)}reduceFunctionExpression(e,{name:r,params:u,body:i}){return this.append(r==null?this.identity:r,u,i)}reduceGetter(e,{name:r,body:u}){return this.append(r,u)}reduceIdentifierExpression(e){return this.identity}reduceIfStatement(e,{test:r,consequent:u,alternate:i}){return this.append(r,u,i==null?this.identity:i)}reduceImport(e,{defaultBinding:r,namedImports:u}){return this.append(r==null?this.identity:r,...u)}reduceImportNamespace(e,{defaultBinding:r,namespaceBinding:u}){return this.append(r==null?this.identity:r,u)}reduceImportSpecifier(e,{binding:r}){return r}reduceLabeledStatement(e,{body:r}){return r}reduceLiteralBooleanExpression(e){return this.identity}reduceLiteralInfinityExpression(e){return this.identity}reduceLiteralNullExpression(e){return this.identity}reduceLiteralNumericExpression(e){return this.identity}reduceLiteralRegExpExpression(e){return this.identity}reduceLiteralStringExpression(e){return this.identity}reduceMethod(e,{name:r,params:u,body:i}){return this.append(r,u,i)}reduceModule(e,{directives:r,items:u}){return this.append(...r,...u)}reduceNewExpression(e,{callee:r,arguments:u}){return this.append(r,...u)}reduceNewTargetExpression(e){return this.identity}reduceObjectAssignmentTarget(e,{properties:r,rest:u}){return this.append(...r,u==null?this.identity:u)}reduceObjectBinding(e,{properties:r,rest:u}){return this.append(...r,u==null?this.identity:u)}reduceObjectExpression(e,{properties:r}){return this.append(...r)}reduceReturnStatement(e,{expression:r}){return r==null?this.identity:r}reduceScript(e,{directives:r,statements:u}){return this.append(...r,...u)}reduceSetter(e,{name:r,param:u,body:i}){return this.append(r,u,i)}reduceShorthandProperty(e,{name:r}){return r}reduceSpreadElement(e,{expression:r}){return r}reduceSpreadProperty(e,{expression:r}){return r}reduceStaticMemberAssignmentTarget(e,{object:r}){return r}reduceStaticMemberExpression(e,{object:r}){return r}reduceStaticPropertyName(e){return this.identity}reduceSuper(e){return this.identity}reduceSwitchCase(e,{test:r,consequent:u}){return this.append(r,...u)}reduceSwitchDefault(e,{consequent:r}){return this.append(...r)}reduceSwitchStatement(e,{discriminant:r,cases:u}){return this.append(r,...u)}reduceSwitchStatementWithDefault(e,{discriminant:r,preDefaultCases:u,defaultCase:i,postDefaultCases:n}){return this.append(r,...u,i,...n)}reduceTemplateElement(e){return this.identity}reduceTemplateExpression(e,{tag:r,elements:u}){return this.append(r==null?this.identity:r,...u)}reduceThisExpression(e){return this.identity}reduceThrowStatement(e,{expression:r}){return r}reduceTryCatchStatement(e,{body:r,catchClause:u}){return this.append(r,u)}reduceTryFinallyStatement(e,{body:r,catchClause:u,finalizer:i}){return this.append(r,u==null?this.identity:u,i)}reduceUnaryExpression(e,{operand:r}){return r}reduceUpdateExpression(e,{operand:r}){return r}reduceVariableDeclaration(e,{declarators:r}){return this.append(...r)}reduceVariableDeclarationStatement(e,{declaration:r}){return r}reduceVariableDeclarator(e,{binding:r,init:u}){return this.append(r,u==null?this.identity:u)}reduceWhileStatement(e,{test:r,body:u}){return this.append(r,u)}reduceWithStatement(e,{object:r,body:u}){return this.append(r,u)}reduceYieldExpression(e,{expression:r}){return r==null?this.identity:r}reduceYieldGeneratorExpression(e,{expression:r}){return r}},thunkedMonoidalReducer=class{constructor(e){let r=e.empty();this.identity=r;let u;if(e.prototype&&typeof e.prototype.concatThunk=="function")u=Function.prototype.call.bind(e.prototype.concatThunk);else if(typeof e.concatThunk=="function")u=e.concatThunk;else{let i;if(e.prototype&&typeof e.prototype.concat=="function")i=Function.prototype.call.bind(e.prototype.concat);else if(typeof e.concat=="function")i=e.concat;else throw new TypeError("Monoid must provide a `concatThunk` or `concat` method");if(typeof e.isAbsorbing=="function"){let n=e.isAbsorbing;u=(a,l)=>n(a)?a:i(a,l())}else u=(n,a)=>i(n,a())}this.append=(...i)=>i.reduce(u,r)}reduceArrayAssignmentTarget(e,{elements:r,rest:u}){return this.append(...r.filter(i=>i!=null),u==null?()=>this.identity:u)}reduceArrayBinding(e,{elements:r,rest:u}){return this.append(...r.filter(i=>i!=null),u==null?()=>this.identity:u)}reduceArrayExpression(e,{elements:r}){return this.append(...r.filter(u=>u!=null))}reduceArrowExpression(e,{params:r,body:u}){return this.append(r,u)}reduceAssignmentExpression(e,{binding:r,expression:u}){return this.append(r,u)}reduceAssignmentTargetIdentifier(e){return this.identity}reduceAssignmentTargetPropertyIdentifier(e,{binding:r,init:u}){return this.append(r,u==null?()=>this.identity:u)}reduceAssignmentTargetPropertyProperty(e,{name:r,binding:u}){return this.append(r,u)}reduceAssignmentTargetWithDefault(e,{binding:r,init:u}){return this.append(r,u)}reduceAwaitExpression(e,{expression:r}){return r()}reduceBinaryExpression(e,{left:r,right:u}){return this.append(r,u)}reduceBindingIdentifier(e){return this.identity}reduceBindingPropertyIdentifier(e,{binding:r,init:u}){return this.append(r,u==null?()=>this.identity:u)}reduceBindingPropertyProperty(e,{name:r,binding:u}){return this.append(r,u)}reduceBindingWithDefault(e,{binding:r,init:u}){return this.append(r,u)}reduceBlock(e,{statements:r}){return this.append(...r)}reduceBlockStatement(e,{block:r}){return r()}reduceBreakStatement(e){return this.identity}reduceCallExpression(e,{callee:r,arguments:u}){return this.append(r,...u)}reduceCatchClause(e,{binding:r,body:u}){return this.append(r==null?()=>this.identity:r,u)}reduceClassDeclaration(e,{name:r,super:u,elements:i}){return this.append(r,u==null?()=>this.identity:u,...i)}reduceClassElement(e,{method:r}){return r()}reduceClassExpression(e,{name:r,super:u,elements:i}){return this.append(r==null?()=>this.identity:r,u==null?()=>this.identity:u,...i)}reduceCompoundAssignmentExpression(e,{binding:r,expression:u}){return this.append(r,u)}reduceComputedMemberAssignmentTarget(e,{object:r,expression:u}){return this.append(r,u)}reduceComputedMemberExpression(e,{object:r,expression:u}){return this.append(r,u)}reduceComputedPropertyName(e,{expression:r}){return r()}reduceConditionalExpression(e,{test:r,consequent:u,alternate:i}){return this.append(r,u,i)}reduceContinueStatement(e){return this.identity}reduceDataProperty(e,{name:r,expression:u}){return this.append(r,u)}reduceDebuggerStatement(e){return this.identity}reduceDirective(e){return this.identity}reduceDoWhileStatement(e,{body:r,test:u}){return this.append(r,u)}reduceEmptyStatement(e){return this.identity}reduceExport(e,{declaration:r}){return r()}reduceExportAllFrom(e){return this.identity}reduceExportDefault(e,{body:r}){return r()}reduceExportFrom(e,{namedExports:r}){return this.append(...r)}reduceExportFromSpecifier(e){return this.identity}reduceExportLocalSpecifier(e,{name:r}){return r()}reduceExportLocals(e,{namedExports:r}){return this.append(...r)}reduceExpressionStatement(e,{expression:r}){return r()}reduceForAwaitStatement(e,{left:r,right:u,body:i}){return this.append(r,u,i)}reduceForInStatement(e,{left:r,right:u,body:i}){return this.append(r,u,i)}reduceForOfStatement(e,{left:r,right:u,body:i}){return this.append(r,u,i)}reduceForStatement(e,{init:r,test:u,update:i,body:n}){return this.append(r==null?()=>this.identity:r,u==null?()=>this.identity:u,i==null?()=>this.identity:i,n)}reduceFormalParameters(e,{items:r,rest:u}){return this.append(...r,u==null?()=>this.identity:u)}reduceFunctionBody(e,{directives:r,statements:u}){return this.append(...r,...u)}reduceFunctionDeclaration(e,{name:r,params:u,body:i}){return this.append(r,u,i)}reduceFunctionExpression(e,{name:r,params:u,body:i}){return this.append(r==null?()=>this.identity:r,u,i)}reduceGetter(e,{name:r,body:u}){return this.append(r,u)}reduceIdentifierExpression(e){return this.identity}reduceIfStatement(e,{test:r,consequent:u,alternate:i}){return this.append(r,u,i==null?()=>this.identity:i)}reduceImport(e,{defaultBinding:r,namedImports:u}){return this.append(r==null?()=>this.identity:r,...u)}reduceImportNamespace(e,{defaultBinding:r,namespaceBinding:u}){return this.append(r==null?()=>this.identity:r,u)}reduceImportSpecifier(e,{binding:r}){return r()}reduceLabeledStatement(e,{body:r}){return r()}reduceLiteralBooleanExpression(e){return this.identity}reduceLiteralInfinityExpression(e){return this.identity}reduceLiteralNullExpression(e){return this.identity}reduceLiteralNumericExpression(e){return this.identity}reduceLiteralRegExpExpression(e){return this.identity}reduceLiteralStringExpression(e){return this.identity}reduceMethod(e,{name:r,params:u,body:i}){return this.append(r,u,i)}reduceModule(e,{directives:r,items:u}){return this.append(...r,...u)}reduceNewExpression(e,{callee:r,arguments:u}){return this.append(r,...u)}reduceNewTargetExpression(e){return this.identity}reduceObjectAssignmentTarget(e,{properties:r,rest:u}){return this.append(...r,u==null?()=>this.identity:u)}reduceObjectBinding(e,{properties:r,rest:u}){return this.append(...r,u==null?()=>this.identity:u)}reduceObjectExpression(e,{properties:r}){return this.append(...r)}reduceReturnStatement(e,{expression:r}){return r==null?this.identity:r()}reduceScript(e,{directives:r,statements:u}){return this.append(...r,...u)}reduceSetter(e,{name:r,param:u,body:i}){return this.append(r,u,i)}reduceShorthandProperty(e,{name:r}){return r()}reduceSpreadElement(e,{expression:r}){return r()}reduceSpreadProperty(e,{expression:r}){return r()}reduceStaticMemberAssignmentTarget(e,{object:r}){return r()}reduceStaticMemberExpression(e,{object:r}){return r()}reduceStaticPropertyName(e){return this.identity}reduceSuper(e){return this.identity}reduceSwitchCase(e,{test:r,consequent:u}){return this.append(r,...u)}reduceSwitchDefault(e,{consequent:r}){return this.append(...r)}reduceSwitchStatement(e,{discriminant:r,cases:u}){return this.append(r,...u)}reduceSwitchStatementWithDefault(e,{discriminant:r,preDefaultCases:u,defaultCase:i,postDefaultCases:n}){return this.append(r,...u,i,...n)}reduceTemplateElement(e){return this.identity}reduceTemplateExpression(e,{tag:r,elements:u}){return this.append(r==null?()=>this.identity:r,...u)}reduceThisExpression(e){return this.identity}reduceThrowStatement(e,{expression:r}){return r()}reduceTryCatchStatement(e,{body:r,catchClause:u}){return this.append(r,u)}reduceTryFinallyStatement(e,{body:r,catchClause:u,finalizer:i}){return this.append(r,u==null?()=>this.identity:u,i)}reduceUnaryExpression(e,{operand:r}){return r()}reduceUpdateExpression(e,{operand:r}){return r()}reduceVariableDeclaration(e,{declarators:r}){return this.append(...r)}reduceVariableDeclarationStatement(e,{declaration:r}){return r()}reduceVariableDeclarator(e,{binding:r,init:u}){return this.append(r,u==null?()=>this.identity:u)}reduceWhileStatement(e,{test:r,body:u}){return this.append(r,u)}reduceWithStatement(e,{object:r,body:u}){return this.append(r,u)}reduceYieldExpression(e,{expression:r}){return r==null?this.identity:r()}reduceYieldGeneratorExpression(e,{expression:r}){return r()}},adapt$2=(s,e)=>({__proto__:e,reduceArrayAssignmentTarget(r,u){return s(super.reduceArrayAssignmentTarget(r,u),r)},reduceArrayBinding(r,u){return s(super.reduceArrayBinding(r,u),r)},reduceArrayExpression(r,u){return s(super.reduceArrayExpression(r,u),r)},reduceArrowExpression(r,u){return s(super.reduceArrowExpression(r,u),r)},reduceAssignmentExpression(r,u){return s(super.reduceAssignmentExpression(r,u),r)},reduceAssignmentTargetIdentifier(r,u){return s(super.reduceAssignmentTargetIdentifier(r,u),r)},reduceAssignmentTargetPropertyIdentifier(r,u){return s(super.reduceAssignmentTargetPropertyIdentifier(r,u),r)},reduceAssignmentTargetPropertyProperty(r,u){return s(super.reduceAssignmentTargetPropertyProperty(r,u),r)},reduceAssignmentTargetWithDefault(r,u){return s(super.reduceAssignmentTargetWithDefault(r,u),r)},reduceAwaitExpression(r,u){return s(super.reduceAwaitExpression(r,u),r)},reduceBinaryExpression(r,u){return s(super.reduceBinaryExpression(r,u),r)},reduceBindingIdentifier(r,u){return s(super.reduceBindingIdentifier(r,u),r)},reduceBindingPropertyIdentifier(r,u){return s(super.reduceBindingPropertyIdentifier(r,u),r)},reduceBindingPropertyProperty(r,u){return s(super.reduceBindingPropertyProperty(r,u),r)},reduceBindingWithDefault(r,u){return s(super.reduceBindingWithDefault(r,u),r)},reduceBlock(r,u){return s(super.reduceBlock(r,u),r)},reduceBlockStatement(r,u){return s(super.reduceBlockStatement(r,u),r)},reduceBreakStatement(r,u){return s(super.reduceBreakStatement(r,u),r)},reduceCallExpression(r,u){return s(super.reduceCallExpression(r,u),r)},reduceCatchClause(r,u){return s(super.reduceCatchClause(r,u),r)},reduceClassDeclaration(r,u){return s(super.reduceClassDeclaration(r,u),r)},reduceClassElement(r,u){return s(super.reduceClassElement(r,u),r)},reduceClassExpression(r,u){return s(super.reduceClassExpression(r,u),r)},reduceCompoundAssignmentExpression(r,u){return s(super.reduceCompoundAssignmentExpression(r,u),r)},reduceComputedMemberAssignmentTarget(r,u){return s(super.reduceComputedMemberAssignmentTarget(r,u),r)},reduceComputedMemberExpression(r,u){return s(super.reduceComputedMemberExpression(r,u),r)},reduceComputedPropertyName(r,u){return s(super.reduceComputedPropertyName(r,u),r)},reduceConditionalExpression(r,u){return s(super.reduceConditionalExpression(r,u),r)},reduceContinueStatement(r,u){return s(super.reduceContinueStatement(r,u),r)},reduceDataProperty(r,u){return s(super.reduceDataProperty(r,u),r)},reduceDebuggerStatement(r,u){return s(super.reduceDebuggerStatement(r,u),r)},reduceDirective(r,u){return s(super.reduceDirective(r,u),r)},reduceDoWhileStatement(r,u){return s(super.reduceDoWhileStatement(r,u),r)},reduceEmptyStatement(r,u){return s(super.reduceEmptyStatement(r,u),r)},reduceExport(r,u){return s(super.reduceExport(r,u),r)},reduceExportAllFrom(r,u){return s(super.reduceExportAllFrom(r,u),r)},reduceExportDefault(r,u){return s(super.reduceExportDefault(r,u),r)},reduceExportFrom(r,u){return s(super.reduceExportFrom(r,u),r)},reduceExportFromSpecifier(r,u){return s(super.reduceExportFromSpecifier(r,u),r)},reduceExportLocalSpecifier(r,u){return s(super.reduceExportLocalSpecifier(r,u),r)},reduceExportLocals(r,u){return s(super.reduceExportLocals(r,u),r)},reduceExpressionStatement(r,u){return s(super.reduceExpressionStatement(r,u),r)},reduceForAwaitStatement(r,u){return s(super.reduceForAwaitStatement(r,u),r)},reduceForInStatement(r,u){return s(super.reduceForInStatement(r,u),r)},reduceForOfStatement(r,u){return s(super.reduceForOfStatement(r,u),r)},reduceForStatement(r,u){return s(super.reduceForStatement(r,u),r)},reduceFormalParameters(r,u){return s(super.reduceFormalParameters(r,u),r)},reduceFunctionBody(r,u){return s(super.reduceFunctionBody(r,u),r)},reduceFunctionDeclaration(r,u){return s(super.reduceFunctionDeclaration(r,u),r)},reduceFunctionExpression(r,u){return s(super.reduceFunctionExpression(r,u),r)},reduceGetter(r,u){return s(super.reduceGetter(r,u),r)},reduceIdentifierExpression(r,u){return s(super.reduceIdentifierExpression(r,u),r)},reduceIfStatement(r,u){return s(super.reduceIfStatement(r,u),r)},reduceImport(r,u){return s(super.reduceImport(r,u),r)},reduceImportNamespace(r,u){return s(super.reduceImportNamespace(r,u),r)},reduceImportSpecifier(r,u){return s(super.reduceImportSpecifier(r,u),r)},reduceLabeledStatement(r,u){return s(super.reduceLabeledStatement(r,u),r)},reduceLiteralBooleanExpression(r,u){return s(super.reduceLiteralBooleanExpression(r,u),r)},reduceLiteralInfinityExpression(r,u){return s(super.reduceLiteralInfinityExpression(r,u),r)},reduceLiteralNullExpression(r,u){return s(super.reduceLiteralNullExpression(r,u),r)},reduceLiteralNumericExpression(r,u){return s(super.reduceLiteralNumericExpression(r,u),r)},reduceLiteralRegExpExpression(r,u){return s(super.reduceLiteralRegExpExpression(r,u),r)},reduceLiteralStringExpression(r,u){return s(super.reduceLiteralStringExpression(r,u),r)},reduceMethod(r,u){return s(super.reduceMethod(r,u),r)},reduceModule(r,u){return s(super.reduceModule(r,u),r)},reduceNewExpression(r,u){return s(super.reduceNewExpression(r,u),r)},reduceNewTargetExpression(r,u){return s(super.reduceNewTargetExpression(r,u),r)},reduceObjectAssignmentTarget(r,u){return s(super.reduceObjectAssignmentTarget(r,u),r)},reduceObjectBinding(r,u){return s(super.reduceObjectBinding(r,u),r)},reduceObjectExpression(r,u){return s(super.reduceObjectExpression(r,u),r)},reduceReturnStatement(r,u){return s(super.reduceReturnStatement(r,u),r)},reduceScript(r,u){return s(super.reduceScript(r,u),r)},reduceSetter(r,u){return s(super.reduceSetter(r,u),r)},reduceShorthandProperty(r,u){return s(super.reduceShorthandProperty(r,u),r)},reduceSpreadElement(r,u){return s(super.reduceSpreadElement(r,u),r)},reduceSpreadProperty(r,u){return s(super.reduceSpreadProperty(r,u),r)},reduceStaticMemberAssignmentTarget(r,u){return s(super.reduceStaticMemberAssignmentTarget(r,u),r)},reduceStaticMemberExpression(r,u){return s(super.reduceStaticMemberExpression(r,u),r)},reduceStaticPropertyName(r,u){return s(super.reduceStaticPropertyName(r,u),r)},reduceSuper(r,u){return s(super.reduceSuper(r,u),r)},reduceSwitchCase(r,u){return s(super.reduceSwitchCase(r,u),r)},reduceSwitchDefault(r,u){return s(super.reduceSwitchDefault(r,u),r)},reduceSwitchStatement(r,u){return s(super.reduceSwitchStatement(r,u),r)},reduceSwitchStatementWithDefault(r,u){return s(super.reduceSwitchStatementWithDefault(r,u),r)},reduceTemplateElement(r,u){return s(super.reduceTemplateElement(r,u),r)},reduceTemplateExpression(r,u){return s(super.reduceTemplateExpression(r,u),r)},reduceThisExpression(r,u){return s(super.reduceThisExpression(r,u),r)},reduceThrowStatement(r,u){return s(super.reduceThrowStatement(r,u),r)},reduceTryCatchStatement(r,u){return s(super.reduceTryCatchStatement(r,u),r)},reduceTryFinallyStatement(r,u){return s(super.reduceTryFinallyStatement(r,u),r)},reduceUnaryExpression(r,u){return s(super.reduceUnaryExpression(r,u),r)},reduceUpdateExpression(r,u){return s(super.reduceUpdateExpression(r,u),r)},reduceVariableDeclaration(r,u){return s(super.reduceVariableDeclaration(r,u),r)},reduceVariableDeclarationStatement(r,u){return s(super.reduceVariableDeclarationStatement(r,u),r)},reduceVariableDeclarator(r,u){return s(super.reduceVariableDeclarator(r,u),r)},reduceWhileStatement(r,u){return s(super.reduceWhileStatement(r,u),r)},reduceWithStatement(r,u){return s(super.reduceWithStatement(r,u),r)},reduceYieldExpression(r,u){return s(super.reduceYieldExpression(r,u),r)},reduceYieldGeneratorExpression(r,u){return s(super.reduceYieldGeneratorExpression(r,u),r)}}),reducers={};const MonoidalReducer$2=monoidalReducer,ThunkedMonoidalReducer$1=thunkedMonoidalReducer,PlusMonoid={empty:()=>0,concat:(s,e)=>s+e},ConcatMonoid={empty:()=>[],concat:(s,e)=>s.concat(e)},AndMonoid={empty:()=>!0,concat:(s,e)=>s&&e,concatThunk:(s,e)=>s&&e()},OrMonoid={empty:()=>!1,concat:(s,e)=>s||e,concatThunk:(s,e)=>s||e()};reducers.PlusReducer=class extends MonoidalReducer$2{constructor(){super(PlusMonoid)}};reducers.ThunkedPlusReducer=class extends ThunkedMonoidalReducer$1{constructor(){super(PlusMonoid)}};reducers.ConcatReducer=class extends MonoidalReducer$2{constructor(){super(ConcatMonoid)}};reducers.ThunkedConcatReducer=class extends ThunkedMonoidalReducer$1{constructor(){super(ConcatMonoid)}};reducers.AndReducer=class extends MonoidalReducer$2{constructor(){super(AndMonoid)}};reducers.ThunkedAndReducer=class extends ThunkedMonoidalReducer$1{constructor(){super(AndMonoid)}};reducers.OrReducer=class extends MonoidalReducer$2{constructor(){super(OrMonoid)}};reducers.ThunkedOrReducer=class extends ThunkedMonoidalReducer$1{constructor(){super(OrMonoid)}};const reduce$3=director_1,thunkedReduce=thunkedDirector,thunkify=thunkify$1,thunkifyClass=thunkifyClass$1,memoize=memoize$1,CloneReducer=cloneReducer,LazyCloneReducer=lazyCloneReducer,MonoidalReducer$1=monoidalReducer,ThunkedMonoidalReducer=thunkedMonoidalReducer,adapt$1=adapt$2,{PlusReducer,ThunkedPlusReducer,ConcatReducer,ThunkedConcatReducer,AndReducer,ThunkedAndReducer,OrReducer,ThunkedOrReducer}=reducers;var src$2={default:reduce$3,reduce:reduce$3,thunkedReduce,thunkify,thunkifyClass,memoize,CloneReducer,LazyCloneReducer,MonoidalReducer:MonoidalReducer$1,ThunkedMonoidalReducer,adapt:adapt$1,PlusReducer,ThunkedPlusReducer,ConcatReducer,ThunkedConcatReducer,AndReducer,ThunkedAndReducer,OrReducer,ThunkedOrReducer},multimap={exports:{}};(function(s,e){function r(i,n){for(var a=i.keys(),l;!(l=a.next()).done;)n(i.get(l.value),l.value,i)}var u=function(){var i;typeof Map<"u"&&(i=Map,Map.prototype.keys||(Map.prototype.keys=function(){var o=[];return this.forEach(function(c,A){o.push(A)}),o}));function n(o){var c=this;c._map=i,n.Map&&(c._map=n.Map),c._=c._map?new c._map:{},o&&o.forEach(function(A){c.set(A[0],A[1])})}n.prototype.get=function(o){return this._map?this._.get(o):this._[o]},n.prototype.set=function(o,c){var A=Array.prototype.slice.call(arguments);o=A.shift();var d=this.get(o);return d||(d=[],this._map?this._.set(o,d):this._[o]=d),Array.prototype.push.apply(d,A),this},n.prototype.delete=function(o,c){if(!this.has(o))return!1;if(arguments.length==1)return this._map?this._.delete(o):delete this._[o],!0;var A=this.get(o),d=A.indexOf(c);return d!=-1?(A.splice(d,1),!0):!1},n.prototype.has=function(o,c){var A=this._map?this._.has(o):this._.hasOwnProperty(o);if(arguments.length==1||!A)return A;var d=this.get(o)||[];return d.indexOf(c)!=-1},n.prototype.keys=function(){return this._map?l(this._.keys()):l(Object.keys(this._))},n.prototype.values=function(){var o=[];return this.forEachEntry(function(c){Array.prototype.push.apply(o,c)}),l(o)},n.prototype.forEachEntry=function(o){r(this,o)},n.prototype.forEach=function(o){var c=this;c.forEachEntry(function(A,d){A.forEach(function(m){o(m,d,c)})})},n.prototype.clear=function(){this._map?this._.clear():this._={}},Object.defineProperty(n.prototype,"size",{configurable:!1,enumerable:!0,get:function(){var o=0;return r(this,function(c){o+=c.length}),o}}),Object.defineProperty(n.prototype,"count",{configurable:!1,enumerable:!0,get:function(){return this._.size}});var a;try{a=new Function("iterator","makeIterator","var keysArray = []; for(var key of iterator){keysArray.push(key);} return makeIterator(keysArray).next;")}catch{}function l(o){if(Array.isArray(o)){var c=0;return{next:function(){return c{r.forEachEntry((u,i)=>{s.set.apply(s,[i].concat(u))})}),s}let identity;class EarlyErrorState$1{constructor(){this.errors=[],this.strictErrors=[],this.usedLabelNames=[],this.freeBreakStatements=[],this.freeContinueStatements=[],this.freeLabeledBreakStatements=[],this.freeLabeledContinueStatements=[],this.newTargetExpressions=[],this.boundNames=new MultiMap,this.lexicallyDeclaredNames=new MultiMap,this.functionDeclarationNames=new MultiMap,this.varDeclaredNames=new MultiMap,this.forOfVarDeclaredNames=[],this.exportedNames=new MultiMap,this.exportedBindings=new MultiMap,this.superCallExpressions=[],this.superCallExpressionsInConstructorMethod=[],this.superPropertyExpressions=[],this.yieldExpressions=[],this.awaitExpressions=[]}addFreeBreakStatement(e){return this.freeBreakStatements.push(e),this}addFreeLabeledBreakStatement(e){return this.freeLabeledBreakStatements.push(e),this}clearFreeBreakStatements(){return this.freeBreakStatements=[],this}addFreeContinueStatement(e){return this.freeContinueStatements.push(e),this}addFreeLabeledContinueStatement(e){return this.freeLabeledContinueStatements.push(e),this}clearFreeContinueStatements(){return this.freeContinueStatements=[],this}enforceFreeBreakStatementErrors(e){return[].push.apply(this.errors,this.freeBreakStatements.map(e)),this.freeBreakStatements=[],this}enforceFreeLabeledBreakStatementErrors(e){return[].push.apply(this.errors,this.freeLabeledBreakStatements.map(e)),this.freeLabeledBreakStatements=[],this}enforceFreeContinueStatementErrors(e){return[].push.apply(this.errors,this.freeContinueStatements.map(e)),this.freeContinueStatements=[],this}enforceFreeLabeledContinueStatementErrors(e){return[].push.apply(this.errors,this.freeLabeledContinueStatements.map(e)),this.freeLabeledContinueStatements=[],this}observeIterationLabel(e){return this.usedLabelNames.push(e),this.freeLabeledBreakStatements=this.freeLabeledBreakStatements.filter(r=>r.label!==e),this.freeLabeledContinueStatements=this.freeLabeledContinueStatements.filter(r=>r.label!==e),this}observeNonIterationLabel(e){return this.usedLabelNames.push(e),this.freeLabeledBreakStatements=this.freeLabeledBreakStatements.filter(r=>r.label!==e),this}clearUsedLabelNames(){return this.usedLabelNames=[],this}observeSuperCallExpression(e){return this.superCallExpressions.push(e),this}observeConstructorMethod(){return this.superCallExpressionsInConstructorMethod=this.superCallExpressions,this.superCallExpressions=[],this}clearSuperCallExpressionsInConstructorMethod(){return this.superCallExpressionsInConstructorMethod=[],this}enforceSuperCallExpressions(e){return[].push.apply(this.errors,this.superCallExpressions.map(e)),[].push.apply(this.errors,this.superCallExpressionsInConstructorMethod.map(e)),this.superCallExpressions=[],this.superCallExpressionsInConstructorMethod=[],this}enforceSuperCallExpressionsInConstructorMethod(e){return[].push.apply(this.errors,this.superCallExpressionsInConstructorMethod.map(e)),this.superCallExpressionsInConstructorMethod=[],this}observeSuperPropertyExpression(e){return this.superPropertyExpressions.push(e),this}clearSuperPropertyExpressions(){return this.superPropertyExpressions=[],this}enforceSuperPropertyExpressions(e){return[].push.apply(this.errors,this.superPropertyExpressions.map(e)),this.superPropertyExpressions=[],this}observeNewTargetExpression(e){return this.newTargetExpressions.push(e),this}clearNewTargetExpressions(){return this.newTargetExpressions=[],this}bindName(e,r){return this.boundNames.set(e,r),this}clearBoundNames(){return this.boundNames=new MultiMap,this}observeLexicalDeclaration(){return addEach(this.lexicallyDeclaredNames,this.boundNames),this.boundNames=new MultiMap,this}observeLexicalBoundary(){return this.previousLexicallyDeclaredNames=this.lexicallyDeclaredNames,this.lexicallyDeclaredNames=new MultiMap,this.functionDeclarationNames=new MultiMap,this}enforceDuplicateLexicallyDeclaredNames(e){return this.lexicallyDeclaredNames.forEachEntry(r=>{r.length>1&&r.slice(1).forEach(u=>{this.addError(e(u))})}),this}enforceConflictingLexicallyDeclaredNames(e,r){return this.lexicallyDeclaredNames.forEachEntry((u,i)=>{e.has(i)&&u.forEach(n=>{this.addError(r(n))})}),this}observeFunctionDeclaration(){return this.observeVarBoundary(),addEach(this.functionDeclarationNames,this.boundNames),this.boundNames=new MultiMap,this}functionDeclarationNamesAreLexical(){return addEach(this.lexicallyDeclaredNames,this.functionDeclarationNames),this.functionDeclarationNames=new MultiMap,this}observeVarDeclaration(){return addEach(this.varDeclaredNames,this.boundNames),this.boundNames=new MultiMap,this}recordForOfVars(){return this.varDeclaredNames.forEach(e=>{this.forOfVarDeclaredNames.push(e)}),this}observeVarBoundary(){return this.lexicallyDeclaredNames=new MultiMap,this.functionDeclarationNames=new MultiMap,this.varDeclaredNames=new MultiMap,this.forOfVarDeclaredNames=[],this}exportName(e,r){return this.exportedNames.set(e,r),this}exportDeclaredNames(){return addEach(this.exportedNames,this.lexicallyDeclaredNames,this.varDeclaredNames),addEach(this.exportedBindings,this.lexicallyDeclaredNames,this.varDeclaredNames),this}exportBinding(e,r){return this.exportedBindings.set(e,r),this}clearExportedBindings(){return this.exportedBindings=new MultiMap,this}observeYieldExpression(e){return this.yieldExpressions.push(e),this}clearYieldExpressions(){return this.yieldExpressions=[],this}observeAwaitExpression(e){return this.awaitExpressions.push(e),this}clearAwaitExpressions(){return this.awaitExpressions=[],this}addError(e){return this.errors.push(e),this}addStrictError(e){return this.strictErrors.push(e),this}enforceStrictErrors(){return[].push.apply(this.errors,this.strictErrors),this.strictErrors=[],this}static empty(){return identity}concat(e){return this===identity?e:e===identity?this:([].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),addEach(this.boundNames,e.boundNames),addEach(this.lexicallyDeclaredNames,e.lexicallyDeclaredNames),addEach(this.functionDeclarationNames,e.functionDeclarationNames),addEach(this.varDeclaredNames,e.varDeclaredNames),[].push.apply(this.forOfVarDeclaredNames,e.forOfVarDeclaredNames),addEach(this.exportedNames,e.exportedNames),addEach(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)}}identity=new EarlyErrorState$1;Object.getOwnPropertyNames(EarlyErrorState$1.prototype).forEach(s=>{s!=="constructor"&&Object.defineProperty(identity,s,{value(){return EarlyErrorState$1.prototype[s].apply(new EarlyErrorState$1,arguments)},enumerable:!1,writable:!0,configurable:!0})});class EarlyError$1 extends Error{constructor(e,r){super(r),this.node=e,this.message=r}}var earlyErrorState={EarlyErrorState:EarlyErrorState$1,EarlyError:EarlyError$1};const{reduce:reduce$2,MonoidalReducer}=src$2,{isStrictModeReservedWord}=utils$1,{ErrorMessages}=errors,{EarlyErrorState,EarlyError}=earlyErrorState;function isStrictFunctionBody({directives:s}){return s.some(e=>e.rawValue==="use strict")}function isLabelledFunction(s){return s.type==="LabeledStatement"&&(s.body.type==="FunctionDeclaration"||isLabelledFunction(s.body))}function isIterationStatement(s){switch(s.type){case"LabeledStatement":return isIterationStatement(s.body);case"DoWhileStatement":case"ForInStatement":case"ForOfStatement":case"ForStatement":case"WhileStatement":return!0}return!1}function isSpecialMethod(s){if(s.name.type!=="StaticPropertyName"||s.name.value!=="constructor")return!1;switch(s.type){case"Getter":case"Setter":return!0;case"Method":return s.isGenerator||s.isAsync}throw new Error("not reached")}function enforceDuplicateConstructorMethods(s,e){let r=s.elements.filter(u=>!u.isStatic&&u.method.type==="Method"&&!u.method.isGenerator&&u.method.name.type==="StaticPropertyName"&&u.method.name.value==="constructor");return r.length>1&&r.slice(1).forEach(u=>{e=e.addError(new EarlyError(u,"Duplicate constructor method in class"))}),e}const SUPERCALL_ERROR=s=>new EarlyError(s,ErrorMessages.ILLEGAL_SUPER_CALL),SUPERPROPERTY_ERROR=s=>new EarlyError(s,"Member access on super must be in a method"),DUPLICATE_BINDING=s=>new EarlyError(s,`Duplicate binding ${JSON.stringify(s.name)}`),FREE_CONTINUE=s=>new EarlyError(s,"Continue statement must be nested within an iteration statement"),UNBOUND_CONTINUE=s=>new EarlyError(s,`Continue statement must be nested within an iteration statement with label ${JSON.stringify(s.label)}`),FREE_BREAK=s=>new EarlyError(s,"Break statement must be nested within an iteration statement or a switch statement"),UNBOUND_BREAK=s=>new EarlyError(s,`Break statement must be nested within a statement with label ${JSON.stringify(s.label)}`);class EarlyErrorChecker$1 extends MonoidalReducer{constructor(){super(EarlyErrorState)}reduceAssignmentExpression(){return super.reduceAssignmentExpression(...arguments).clearBoundNames()}reduceAssignmentTargetIdentifier(e){let r=this.identity;return(e.name==="eval"||e.name==="arguments"||isStrictModeReservedWord(e.name))&&(r=r.addStrictError(new EarlyError(e,`The identifier ${JSON.stringify(e.name)} must not be in binding position in strict mode`))),r}reduceArrowExpression(e,{params:r,body:u}){let i=e.params.rest==null&&e.params.items.every(a=>a.type==="BindingIdentifier");r=r.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),e.body.type==="FunctionBody"&&(u=u.enforceConflictingLexicallyDeclaredNames(r.lexicallyDeclaredNames,DUPLICATE_BINDING),isStrictFunctionBody(e.body)&&(r=r.enforceStrictErrors(),u=u.enforceStrictErrors())),r.yieldExpressions.forEach(a=>{r=r.addError(new EarlyError(a,"Arrow parameters must not contain yield expressions"))}),r.awaitExpressions.forEach(a=>{r=r.addError(new EarlyError(a,"Arrow parameters must not contain await expressions"))});let n=super.reduceArrowExpression(e,{params:r,body:u});return!i&&e.body.type==="FunctionBody"&&isStrictFunctionBody(e.body)&&(n=n.addError(new EarlyError(e,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),n=n.clearYieldExpressions(),n=n.clearAwaitExpressions(),n=n.observeVarBoundary(),n}reduceAwaitExpression(e,{expression:r}){return r.observeAwaitExpression(e)}reduceBindingIdentifier(e){let r=this.identity;return(e.name==="eval"||e.name==="arguments"||isStrictModeReservedWord(e.name))&&(r=r.addStrictError(new EarlyError(e,`The identifier ${JSON.stringify(e.name)} must not be in binding position in strict mode`))),r=r.bindName(e.name,e),r}reduceBlock(){let e=super.reduceBlock(...arguments);return e=e.functionDeclarationNamesAreLexical(),e=e.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),e=e.enforceConflictingLexicallyDeclaredNames(e.varDeclaredNames,DUPLICATE_BINDING),e=e.observeLexicalBoundary(),e}reduceBreakStatement(e){let r=super.reduceBreakStatement(...arguments);return r=e.label==null?r.addFreeBreakStatement(e):r.addFreeLabeledBreakStatement(e),r}reduceCallExpression(e){let r=super.reduceCallExpression(...arguments);return e.callee.type==="Super"&&(r=r.observeSuperCallExpression(e)),r}reduceCatchClause(e,{binding:r,body:u}){r!=null&&(r=r.observeLexicalDeclaration(),r=r.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),r=r.enforceConflictingLexicallyDeclaredNames(u.previousLexicallyDeclaredNames,DUPLICATE_BINDING));let i=super.reduceCatchClause(e,{binding:r,body:u});return i=i.observeLexicalBoundary(),i}reduceClassDeclaration(e,{name:r,super:u,elements:i}){let n=r.enforceStrictErrors(),a=this.append(...i);return a=a.enforceStrictErrors(),e.super!=null&&(u=u.enforceStrictErrors(),n=this.append(n,u),a=a.clearSuperCallExpressionsInConstructorMethod()),n=this.append(n,a),n=enforceDuplicateConstructorMethods(e,n),n=n.observeLexicalDeclaration(),n}reduceClassElement(e){let r=super.reduceClassElement(...arguments);return!e.isStatic&&isSpecialMethod(e.method)&&(r=r.addError(new EarlyError(e,ErrorMessages.ILLEGAL_CONSTRUCTORS))),e.isStatic&&e.method.name.type==="StaticPropertyName"&&e.method.name.value==="prototype"&&(r=r.addError(new EarlyError(e,'Static class methods cannot be named "prototype"'))),r}reduceClassExpression(e,{name:r,super:u,elements:i}){let n=e.name==null?this.identity:r.enforceStrictErrors(),a=this.append(...i);return a=a.enforceStrictErrors(),e.super!=null&&(u=u.enforceStrictErrors(),n=this.append(n,u),a=a.clearSuperCallExpressionsInConstructorMethod()),n=this.append(n,a),n=enforceDuplicateConstructorMethods(e,n),n=n.clearBoundNames(),n}reduceCompoundAssignmentExpression(){return super.reduceCompoundAssignmentExpression(...arguments).clearBoundNames()}reduceComputedMemberExpression(e){let r=super.reduceComputedMemberExpression(...arguments);return e.object.type==="Super"&&(r=r.observeSuperPropertyExpression(e)),r}reduceContinueStatement(e){let r=super.reduceContinueStatement(...arguments);return r=e.label==null?r.addFreeContinueStatement(e):r.addFreeLabeledContinueStatement(e),r}reduceDoWhileStatement(e){let r=super.reduceDoWhileStatement(...arguments);return isLabelledFunction(e.body)&&(r=r.addError(new EarlyError(e.body,"The body of a do-while statement must not be a labeled function declaration"))),r=r.clearFreeContinueStatements(),r=r.clearFreeBreakStatements(),r}reduceExport(){let e=super.reduceExport(...arguments);return e=e.functionDeclarationNamesAreLexical(),e=e.exportDeclaredNames(),e}reduceExportFrom(){let e=super.reduceExportFrom(...arguments);return e=e.clearExportedBindings(),e}reduceExportFromSpecifier(e){let r=super.reduceExportFromSpecifier(...arguments);return r=r.exportName(e.exportedName||e.name,e),r=r.exportBinding(e.name,e),r}reduceExportLocalSpecifier(e){let r=super.reduceExportLocalSpecifier(...arguments);return r=r.exportName(e.exportedName||e.name.name,e),r=r.exportBinding(e.name.name,e),r}reduceExportDefault(e){let r=super.reduceExportDefault(...arguments);return r=r.functionDeclarationNamesAreLexical(),r=r.exportName("default",e),r}reduceFormalParameters(){let e=super.reduceFormalParameters(...arguments);return e=e.observeLexicalDeclaration(),e}reduceForStatement(e,{init:r,test:u,update:i,body:n}){r!=null&&(r=r.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),r=r.enforceConflictingLexicallyDeclaredNames(n.varDeclaredNames,DUPLICATE_BINDING));let a=super.reduceForStatement(e,{init:r,test:u,update:i,body:n});return e.init!=null&&e.init.type==="VariableDeclaration"&&e.init.kind==="const"&&e.init.declarators.forEach(l=>{l.init==null&&(a=a.addError(new EarlyError(l,"Constant lexical declarations must have an initialiser")))}),isLabelledFunction(e.body)&&(a=a.addError(new EarlyError(e.body,"The body of a for statement must not be a labeled function declaration"))),a=a.clearFreeContinueStatements(),a=a.clearFreeBreakStatements(),a=a.observeLexicalBoundary(),a}reduceForInStatement(e,{left:r,right:u,body:i}){r=r.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),r=r.enforceConflictingLexicallyDeclaredNames(i.varDeclaredNames,DUPLICATE_BINDING);let n=super.reduceForInStatement(e,{left:r,right:u,body:i});return isLabelledFunction(e.body)&&(n=n.addError(new EarlyError(e.body,"The body of a for-in statement must not be a labeled function declaration"))),n=n.clearFreeContinueStatements(),n=n.clearFreeBreakStatements(),n=n.observeLexicalBoundary(),n}reduceForOfStatement(e,{left:r,right:u,body:i}){r=r.recordForOfVars(),r=r.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),r=r.enforceConflictingLexicallyDeclaredNames(i.varDeclaredNames,DUPLICATE_BINDING);let n=super.reduceForOfStatement(e,{left:r,right:u,body:i});return isLabelledFunction(e.body)&&(n=n.addError(new EarlyError(e.body,"The body of a for-of statement must not be a labeled function declaration"))),n=n.clearFreeContinueStatements(),n=n.clearFreeBreakStatements(),n=n.observeLexicalBoundary(),n}reduceForAwaitStatement(e,{left:r,right:u,body:i}){r=r.recordForOfVars(),r=r.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),r=r.enforceConflictingLexicallyDeclaredNames(i.varDeclaredNames,DUPLICATE_BINDING);let n=super.reduceForOfStatement(e,{left:r,right:u,body:i});return isLabelledFunction(e.body)&&(n=n.addError(new EarlyError(e.body,"The body of a for-await statement must not be a labeled function declaration"))),n=n.clearFreeContinueStatements(),n=n.clearFreeBreakStatements(),n=n.observeLexicalBoundary(),n}reduceFunctionBody(e){let r=super.reduceFunctionBody(...arguments);return r=r.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),r=r.enforceConflictingLexicallyDeclaredNames(r.varDeclaredNames,DUPLICATE_BINDING),r=r.enforceFreeContinueStatementErrors(FREE_CONTINUE),r=r.enforceFreeLabeledContinueStatementErrors(UNBOUND_CONTINUE),r=r.enforceFreeBreakStatementErrors(FREE_BREAK),r=r.enforceFreeLabeledBreakStatementErrors(UNBOUND_BREAK),r=r.clearUsedLabelNames(),r=r.clearYieldExpressions(),r=r.clearAwaitExpressions(),isStrictFunctionBody(e)&&(r=r.enforceStrictErrors()),r}reduceFunctionDeclaration(e,{name:r,params:u,body:i}){let n=e.params.rest==null&&e.params.items.every(o=>o.type==="BindingIdentifier"),a=!n||e.isGenerator?"addError":"addStrictError";u.lexicallyDeclaredNames.forEachEntry(o=>{o.length>1&&o.slice(1).forEach(c=>{u=u[a](DUPLICATE_BINDING(c))})}),i=i.enforceConflictingLexicallyDeclaredNames(u.lexicallyDeclaredNames,DUPLICATE_BINDING),i=i.enforceSuperCallExpressions(SUPERCALL_ERROR),i=i.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),u=u.enforceSuperCallExpressions(SUPERCALL_ERROR),u=u.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),e.isGenerator&&u.yieldExpressions.forEach(o=>{u=u.addError(new EarlyError(o,"Generator parameters must not contain yield expressions"))}),e.isAsync&&u.awaitExpressions.forEach(o=>{u=u.addError(new EarlyError(o,"Async function parameters must not contain await expressions"))}),u=u.clearNewTargetExpressions(),i=i.clearNewTargetExpressions(),isStrictFunctionBody(e.body)&&(u=u.enforceStrictErrors(),i=i.enforceStrictErrors());let l=super.reduceFunctionDeclaration(e,{name:r,params:u,body:i});return!n&&isStrictFunctionBody(e.body)&&(l=l.addError(new EarlyError(e,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),l=l.clearYieldExpressions(),l=l.clearAwaitExpressions(),l=l.observeFunctionDeclaration(),l}reduceFunctionExpression(e,{name:r,params:u,body:i}){let n=e.params.rest==null&&e.params.items.every(o=>o.type==="BindingIdentifier"),a=!n||e.isGenerator?"addError":"addStrictError";u.lexicallyDeclaredNames.forEachEntry((o,c)=>{o.length>1&&o.slice(1).forEach(A=>{u=u[a](new EarlyError(A,`Duplicate binding ${JSON.stringify(c)}`))})}),i=i.enforceConflictingLexicallyDeclaredNames(u.lexicallyDeclaredNames,DUPLICATE_BINDING),i=i.enforceSuperCallExpressions(SUPERCALL_ERROR),i=i.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),u=u.enforceSuperCallExpressions(SUPERCALL_ERROR),u=u.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),e.isGenerator&&u.yieldExpressions.forEach(o=>{u=u.addError(new EarlyError(o,"Generator parameters must not contain yield expressions"))}),e.isAsync&&u.awaitExpressions.forEach(o=>{u=u.addError(new EarlyError(o,"Async function parameters must not contain await expressions"))}),u=u.clearNewTargetExpressions(),i=i.clearNewTargetExpressions(),isStrictFunctionBody(e.body)&&(u=u.enforceStrictErrors(),i=i.enforceStrictErrors());let l=super.reduceFunctionExpression(e,{name:r,params:u,body:i});return!n&&isStrictFunctionBody(e.body)&&(l=l.addError(new EarlyError(e,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),l=l.clearBoundNames(),l=l.clearYieldExpressions(),l=l.clearAwaitExpressions(),l=l.observeVarBoundary(),l}reduceGetter(e,{name:r,body:u}){u=u.enforceSuperCallExpressions(SUPERCALL_ERROR),u=u.clearSuperPropertyExpressions(),u=u.clearNewTargetExpressions(),isStrictFunctionBody(e.body)&&(u=u.enforceStrictErrors());let i=super.reduceGetter(e,{name:r,body:u});return i=i.observeVarBoundary(),i}reduceIdentifierExpression(e){let r=this.identity;return isStrictModeReservedWord(e.name)&&(r=r.addStrictError(new EarlyError(e,`The identifier ${JSON.stringify(e.name)} must not be in expression position in strict mode`))),r}reduceIfStatement(e,{test:r,consequent:u,alternate:i}){return isLabelledFunction(e.consequent)&&(u=u.addError(new EarlyError(e.consequent,"The consequent of an if statement must not be a labeled function declaration"))),e.alternate!=null&&isLabelledFunction(e.alternate)&&(i=i.addError(new EarlyError(e.alternate,"The alternate of an if statement must not be a labeled function declaration"))),e.consequent.type==="FunctionDeclaration"&&(u=u.addStrictError(new EarlyError(e.consequent,"FunctionDeclarations in IfStatements are disallowed in strict mode")),u=u.observeLexicalBoundary()),e.alternate!=null&&e.alternate.type==="FunctionDeclaration"&&(i=i.addStrictError(new EarlyError(e.alternate,"FunctionDeclarations in IfStatements are disallowed in strict mode")),i=i.observeLexicalBoundary()),super.reduceIfStatement(e,{test:r,consequent:u,alternate:i})}reduceImport(){let e=super.reduceImport(...arguments);return e=e.observeLexicalDeclaration(),e}reduceImportNamespace(){let e=super.reduceImportNamespace(...arguments);return e=e.observeLexicalDeclaration(),e}reduceLabeledStatement(e){let r=super.reduceLabeledStatement(...arguments);return(e.label==="yield"||isStrictModeReservedWord(e.label))&&(r=r.addStrictError(new EarlyError(e,`The identifier ${JSON.stringify(e.label)} must not be in label position in strict mode`))),r.usedLabelNames.indexOf(e.label)>=0&&(r=r.addError(new EarlyError(e,`Label ${JSON.stringify(e.label)} has already been declared`))),e.body.type==="FunctionDeclaration"&&(r=r.addStrictError(new EarlyError(e,"Labeled FunctionDeclarations are disallowed in strict mode"))),r=isIterationStatement(e.body)?r.observeIterationLabel(e.label):r.observeNonIterationLabel(e.label),r}reduceLiteralRegExpExpression(){return this.identity}reduceMethod(e,{name:r,params:u,body:i}){let n=e.params.rest==null&&e.params.items.every(l=>l.type==="BindingIdentifier");u=u.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),i=i.enforceConflictingLexicallyDeclaredNames(u.lexicallyDeclaredNames,DUPLICATE_BINDING),e.name.type==="StaticPropertyName"&&e.name.value==="constructor"?(i=i.observeConstructorMethod(),u=u.observeConstructorMethod()):(i=i.enforceSuperCallExpressions(SUPERCALL_ERROR),u=u.enforceSuperCallExpressions(SUPERCALL_ERROR)),e.isGenerator&&u.yieldExpressions.forEach(l=>{u=u.addError(new EarlyError(l,"Generator parameters must not contain yield expressions"))}),e.isAsync&&u.awaitExpressions.forEach(l=>{u=u.addError(new EarlyError(l,"Async function parameters must not contain await expressions"))}),i=i.clearSuperPropertyExpressions(),u=u.clearSuperPropertyExpressions(),u=u.clearNewTargetExpressions(),i=i.clearNewTargetExpressions(),isStrictFunctionBody(e.body)&&(u=u.enforceStrictErrors(),i=i.enforceStrictErrors());let a=super.reduceMethod(e,{name:r,params:u,body:i});return!n&&isStrictFunctionBody(e.body)&&(a=a.addError(new EarlyError(e,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),a=a.clearYieldExpressions(),a=a.clearAwaitExpressions(),a=a.observeVarBoundary(),a}reduceModule(){let e=super.reduceModule(...arguments);return e=e.functionDeclarationNamesAreLexical(),e=e.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),e=e.enforceConflictingLexicallyDeclaredNames(e.varDeclaredNames,DUPLICATE_BINDING),e.exportedNames.forEachEntry((r,u)=>{r.length>1&&r.slice(1).forEach(i=>{e=e.addError(new EarlyError(i,`Duplicate export ${JSON.stringify(u)}`))})}),e.exportedBindings.forEachEntry((r,u)=>{!e.lexicallyDeclaredNames.has(u)&&!e.varDeclaredNames.has(u)&&r.forEach(i=>{e=e.addError(new EarlyError(i,`Exported binding ${JSON.stringify(u)} is not declared`))})}),e.newTargetExpressions.forEach(r=>{e=e.addError(new EarlyError(r,"new.target must be within function (but not arrow expression) code"))}),e=e.enforceFreeContinueStatementErrors(FREE_CONTINUE),e=e.enforceFreeLabeledContinueStatementErrors(UNBOUND_CONTINUE),e=e.enforceFreeBreakStatementErrors(FREE_BREAK),e=e.enforceFreeLabeledBreakStatementErrors(UNBOUND_BREAK),e=e.enforceSuperCallExpressions(SUPERCALL_ERROR),e=e.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),e=e.enforceStrictErrors(),e}reduceNewTargetExpression(e){return this.identity.observeNewTargetExpression(e)}reduceObjectExpression(e){let r=super.reduceObjectExpression(...arguments);return r=r.enforceSuperCallExpressionsInConstructorMethod(SUPERCALL_ERROR),e.properties.filter(i=>i.type==="DataProperty"&&i.name.type==="StaticPropertyName"&&i.name.value==="__proto__").slice(1).forEach(i=>{r=r.addError(new EarlyError(i,"Duplicate __proto__ property in object literal not allowed"))}),r}reduceUpdateExpression(){let e=super.reduceUpdateExpression(...arguments);return e=e.clearBoundNames(),e}reduceUnaryExpression(e){let r=super.reduceUnaryExpression(...arguments);return e.operator==="delete"&&e.operand.type==="IdentifierExpression"&&(r=r.addStrictError(new EarlyError(e,"Identifier expressions must not be deleted in strict mode"))),r}reduceScript(e){let r=super.reduceScript(...arguments);return r=r.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),r=r.enforceConflictingLexicallyDeclaredNames(r.varDeclaredNames,DUPLICATE_BINDING),r.newTargetExpressions.forEach(u=>{r=r.addError(new EarlyError(u,"new.target must be within function (but not arrow expression) code"))}),r=r.enforceFreeContinueStatementErrors(FREE_CONTINUE),r=r.enforceFreeLabeledContinueStatementErrors(UNBOUND_CONTINUE),r=r.enforceFreeBreakStatementErrors(FREE_BREAK),r=r.enforceFreeLabeledBreakStatementErrors(UNBOUND_BREAK),r=r.enforceSuperCallExpressions(SUPERCALL_ERROR),r=r.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),isStrictFunctionBody(e)&&(r=r.enforceStrictErrors()),r}reduceSetter(e,{name:r,param:u,body:i}){let n=e.param.type==="BindingIdentifier";u=u.observeLexicalDeclaration(),u=u.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),i=i.enforceConflictingLexicallyDeclaredNames(u.lexicallyDeclaredNames,DUPLICATE_BINDING),u=u.enforceSuperCallExpressions(SUPERCALL_ERROR),i=i.enforceSuperCallExpressions(SUPERCALL_ERROR),u=u.clearSuperPropertyExpressions(),i=i.clearSuperPropertyExpressions(),u=u.clearNewTargetExpressions(),i=i.clearNewTargetExpressions(),isStrictFunctionBody(e.body)&&(u=u.enforceStrictErrors(),i=i.enforceStrictErrors());let a=super.reduceSetter(e,{name:r,param:u,body:i});return!n&&isStrictFunctionBody(e.body)&&(a=a.addError(new EarlyError(e,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),a=a.observeVarBoundary(),a}reduceStaticMemberExpression(e){let r=super.reduceStaticMemberExpression(...arguments);return e.object.type==="Super"&&(r=r.observeSuperPropertyExpression(e)),r}reduceSwitchStatement(e,{discriminant:r,cases:u}){let i=this.append(...u);i=i.functionDeclarationNamesAreLexical(),i=i.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),i=i.enforceConflictingLexicallyDeclaredNames(i.varDeclaredNames,DUPLICATE_BINDING),i=i.observeLexicalBoundary();let n=this.append(r,i);return n=n.clearFreeBreakStatements(),n}reduceSwitchStatementWithDefault(e,{discriminant:r,preDefaultCases:u,defaultCase:i,postDefaultCases:n}){let a=this.append(i,...u,...n);a=a.functionDeclarationNamesAreLexical(),a=a.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),a=a.enforceConflictingLexicallyDeclaredNames(a.varDeclaredNames,DUPLICATE_BINDING),a=a.observeLexicalBoundary();let l=this.append(r,a);return l=l.clearFreeBreakStatements(),l}reduceVariableDeclaration(e){let r=super.reduceVariableDeclaration(...arguments);switch(e.kind){case"const":case"let":{r=r.observeLexicalDeclaration(),r.lexicallyDeclaredNames.has("let")&&r.lexicallyDeclaredNames.get("let").forEach(u=>{r=r.addError(new EarlyError(u,'Lexical declarations must not have a binding named "let"'))});break}case"var":r=r.observeVarDeclaration();break}return r}reduceVariableDeclarationStatement(e){let r=super.reduceVariableDeclarationStatement(...arguments);return e.declaration.kind==="const"&&e.declaration.declarators.forEach(u=>{u.init==null&&(r=r.addError(new EarlyError(u,"Constant lexical declarations must have an initialiser")))}),r}reduceWhileStatement(e){let r=super.reduceWhileStatement(...arguments);return isLabelledFunction(e.body)&&(r=r.addError(new EarlyError(e.body,"The body of a while statement must not be a labeled function declaration"))),r=r.clearFreeContinueStatements().clearFreeBreakStatements(),r}reduceWithStatement(e){let r=super.reduceWithStatement(...arguments);return isLabelledFunction(e.body)&&(r=r.addError(new EarlyError(e.body,"The body of a with statement must not be a labeled function declaration"))),r=r.addStrictError(new EarlyError(e,"Strict mode code must not include a with statement")),r}reduceYieldExpression(e){let r=super.reduceYieldExpression(...arguments);return r=r.observeYieldExpression(e),r}reduceYieldGeneratorExpression(e){let r=super.reduceYieldGeneratorExpression(...arguments);return r=r.observeYieldExpression(e),r}static check(e){return reduce$2(new EarlyErrorChecker$1,e).errors}}var earlyErrors={EarlyErrorChecker:EarlyErrorChecker$1};const{GenericParser}=parser,{JsError}=tokenizer,{EarlyErrorChecker}=earlyErrors,{isLineTerminator}=utils$1,{Tokenizer,TokenClass,TokenType}=tokenizer;class ParserWithLocation extends GenericParser{constructor(e){super(e),this.locations=new WeakMap,this.comments=[]}startNode(){return this.getLocation()}finishNode(e,r){if(e.type==="Script"||e.type==="Module")return this.locations.set(e,{start:{line:1,column:0,offset:0},end:this.getLocation()}),e;if(e.type==="TemplateExpression")for(let u=0;u0)throw new JsError(0,1,0,a[0].message)}return n}}function generateInterfaceWithLocation(s){return function(r,{earlyErrors:u=!0}={}){let i=new ParserWithLocation(r),n=i[s]();if(u){let a=EarlyErrorChecker.check(n);if(a.length>0){let{node:l,message:o}=a[0],{offset:c,line:A,column:d}=i.locations.get(l).start;throw new JsError(c,A,d,o)}}return{tree:n,locations:i.locations,comments:i.comments}}}const parseScript=generateInterface("parseScript"),parseModule=generateInterface("parseModule"),parseModuleWithLocation=generateInterfaceWithLocation("parseModule"),parseScriptWithLocation=generateInterfaceWithLocation("parseScript");var src$1={default:parseScript,parseScript,parseModule,parseModuleWithLocation,parseScriptWithLocation,EarlyErrorChecker,GenericParser,ParserWithLocation,Tokenizer,TokenClass,TokenType},dist=function(){var s={},e={typeName:"Boolean"},r={typeName:"Number"},u={typeName:"String"};function i(Fe){return{typeName:"Maybe",argument:Fe}}function n(Fe){return{typeName:"List",argument:Fe}}function a(Fe){return{typeName:"Const",argument:Fe}}function l(){return{typeName:"Union",arguments:[].slice.call(arguments,0)}}var o={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"]},c={typeName:"Enum",values:["==","!=","===","!==","<","<=",">",">=","in","instanceof","<<",">>",">>>","+","-","*","/","%","**",",","||","&&","|","^","&"]},A={typeName:"Enum",values:["+=","-=","*=","/=","%=","**=","<<=",">>=",">>>=","|=","^=","&="]},d={typeName:"Enum",values:["+","-","!","~","typeof","void","delete"]},m={typeName:"Enum",values:["++","--"]},f={typeName:"Enum",values:["var","let","const"]},E=s.ArrayAssignmentTarget={},D=s.ArrayBinding={},h=s.ArrayExpression={},y=s.ArrowExpression={},_=s.AssignmentExpression={},b=s.AssignmentTargetIdentifier={},P=s.AssignmentTargetPropertyIdentifier={},B=s.AssignmentTargetPropertyProperty={},g=s.AssignmentTargetWithDefault={},x=s.AwaitExpression={},C=s.BinaryExpression={},S=s.BindingIdentifier={},L=s.BindingPropertyIdentifier={},$=s.BindingPropertyProperty={},N=s.BindingWithDefault={},R=s.Block={},O=s.BlockStatement={},U=s.BreakStatement={},G=s.CallExpression={},k=s.CatchClause={},M=s.ClassDeclaration={},H=s.ClassElement={},Y=s.ClassExpression={},ae=s.CompoundAssignmentExpression={},ee=s.ComputedMemberAssignmentTarget={},te=s.ComputedMemberExpression={},v=s.ComputedPropertyName={},X=s.ConditionalExpression={},re=s.ContinueStatement={},Ee=s.DataProperty={},q=s.DebuggerStatement={},K=s.Directive={},le=s.DoWhileStatement={},ue=s.EmptyStatement={},se=s.Export={},W=s.ExportAllFrom={},z=s.ExportDefault={},ce=s.ExportFrom={},De=s.ExportFromSpecifier={},Ae=s.ExportLocalSpecifier={},xe=s.ExportLocals={},_e=s.ExpressionStatement={},Ie=s.ForAwaitStatement={},Re=s.ForInStatement={},Ne=s.ForOfStatement={},we=s.ForStatement={},pe=s.FormalParameters={},ie=s.FunctionBody={},me=s.FunctionDeclaration={},ye=s.FunctionExpression={},be=s.Getter={},de=s.IdentifierExpression={},Le=s.IfStatement={},$e=s.Import={},Pe=s.ImportNamespace={},Se=s.ImportSpecifier={},Oe=s.LabeledStatement={},ke=s.LiteralBooleanExpression={},Me=s.LiteralInfinityExpression={},ve=s.LiteralNullExpression={},We=s.LiteralNumericExpression={},Ge=s.LiteralRegExpExpression={},Ue=s.LiteralStringExpression={},qe=s.Method={},He=s.Module={},Ve=s.NewExpression={},je=s.NewTargetExpression={},Q=s.ObjectAssignmentTarget={},J=s.ObjectBinding={},Ye=s.ObjectExpression={},Xe=s.ReturnStatement={},Ke=s.Script={},ze=s.Setter={},Je=s.ShorthandProperty={},fe=s.SpreadElement={},Ze=s.SpreadProperty={},Qe=s.StaticMemberAssignmentTarget={},et=s.StaticMemberExpression={},tt=s.StaticPropertyName={},oe=s.Super={},Ce=s.SwitchCase={},ge=s.SwitchDefault={},rt=s.SwitchStatement={},ut=s.SwitchStatementWithDefault={},Te=s.TemplateElement={},st=s.TemplateExpression={},it=s.ThisExpression={},nt=s.ThrowStatement={},at=s.TryCatchStatement={},ot=s.TryFinallyStatement={},lt=s.UnaryExpression={},ct=s.UpdateExpression={},ne=s.VariableDeclaration={},pt=s.VariableDeclarationStatement={},Be=s.VariableDeclarator={},ht=s.WhileStatement={},Et=s.WithStatement={},Dt=s.YieldExpression={},At=s.YieldGeneratorExpression={},St=l(te,et),mt=l(P,B);l(M,Y);var dt=l(se,W,z,ce,xe),he=l(v,tt);l(me,ye);var ft=l($e,Pe),gt=l(le,Ie,Re,Ne,we,ht),Z=l(ee,Qe),Ct=l(L,$),Ft=l(be,qe,ze),Tt=l(He,Ke),Bt=l(b,S,de),xt=l(Ee,Ft),w=l(h,y,_,x,C,G,Y,ae,X,ye,de,ke,Me,ve,We,Ge,Ue,St,Ve,je,Ye,st,it,lt,ct,Dt,At),j=l(O,U,M,re,q,ue,_e,me,Le,gt,Oe,Xe,rt,ut,nt,at,ot,pt,Et),yt=l(xt,Je,Ze);return l(E,D,mt,g,Ct,N,R,k,H,K,dt,De,Ae,w,pe,ie,ft,Se,Z,Q,J,yt,Tt,he,fe,j,oe,Ce,ge,Te,ne,Be,Bt),E.typeName="ArrayAssignmentTarget",E.fields=[{name:"type",type:a(o),value:"ArrayAssignmentTarget"},{name:"elements",type:n(i(l(g,l(l(E,Q),l(b,Z)))))},{name:"rest",type:i(l(l(E,Q),l(b,Z)))}],D.typeName="ArrayBinding",D.fields=[{name:"type",type:a(o),value:"ArrayBinding"},{name:"elements",type:n(i(l(N,l(S,l(D,J)))))},{name:"rest",type:i(l(S,l(D,J)))}],h.typeName="ArrayExpression",h.fields=[{name:"type",type:a(o),value:"ArrayExpression"},{name:"elements",type:n(i(l(w,fe)))}],y.typeName="ArrowExpression",y.fields=[{name:"type",type:a(o),value:"ArrowExpression"},{name:"isAsync",type:e},{name:"params",type:pe},{name:"body",type:l(w,ie)}],_.typeName="AssignmentExpression",_.fields=[{name:"type",type:a(o),value:"AssignmentExpression"},{name:"binding",type:l(l(E,Q),l(b,Z))},{name:"expression",type:w}],b.typeName="AssignmentTargetIdentifier",b.fields=[{name:"type",type:a(o),value:"AssignmentTargetIdentifier"},{name:"name",type:u}],P.typeName="AssignmentTargetPropertyIdentifier",P.fields=[{name:"type",type:a(o),value:"AssignmentTargetPropertyIdentifier"},{name:"binding",type:b},{name:"init",type:i(w)}],B.typeName="AssignmentTargetPropertyProperty",B.fields=[{name:"type",type:a(o),value:"AssignmentTargetPropertyProperty"},{name:"name",type:he},{name:"binding",type:l(g,l(l(E,Q),l(b,Z)))}],g.typeName="AssignmentTargetWithDefault",g.fields=[{name:"type",type:a(o),value:"AssignmentTargetWithDefault"},{name:"binding",type:l(l(E,Q),l(b,Z))},{name:"init",type:w}],x.typeName="AwaitExpression",x.fields=[{name:"type",type:a(o),value:"AwaitExpression"},{name:"expression",type:w}],C.typeName="BinaryExpression",C.fields=[{name:"type",type:a(o),value:"BinaryExpression"},{name:"left",type:w},{name:"operator",type:c},{name:"right",type:w}],S.typeName="BindingIdentifier",S.fields=[{name:"type",type:a(o),value:"BindingIdentifier"},{name:"name",type:u}],L.typeName="BindingPropertyIdentifier",L.fields=[{name:"type",type:a(o),value:"BindingPropertyIdentifier"},{name:"binding",type:S},{name:"init",type:i(w)}],$.typeName="BindingPropertyProperty",$.fields=[{name:"type",type:a(o),value:"BindingPropertyProperty"},{name:"name",type:he},{name:"binding",type:l(N,l(S,l(D,J)))}],N.typeName="BindingWithDefault",N.fields=[{name:"type",type:a(o),value:"BindingWithDefault"},{name:"binding",type:l(S,l(D,J))},{name:"init",type:w}],R.typeName="Block",R.fields=[{name:"type",type:a(o),value:"Block"},{name:"statements",type:n(j)}],O.typeName="BlockStatement",O.fields=[{name:"type",type:a(o),value:"BlockStatement"},{name:"block",type:R}],U.typeName="BreakStatement",U.fields=[{name:"type",type:a(o),value:"BreakStatement"},{name:"label",type:i(u)}],G.typeName="CallExpression",G.fields=[{name:"type",type:a(o),value:"CallExpression"},{name:"callee",type:l(w,oe)},{name:"arguments",type:n(l(w,fe))}],k.typeName="CatchClause",k.fields=[{name:"type",type:a(o),value:"CatchClause"},{name:"binding",type:i(l(S,l(D,J)))},{name:"body",type:R}],M.typeName="ClassDeclaration",M.fields=[{name:"type",type:a(o),value:"ClassDeclaration"},{name:"name",type:S},{name:"super",type:i(w)},{name:"elements",type:n(H)}],H.typeName="ClassElement",H.fields=[{name:"type",type:a(o),value:"ClassElement"},{name:"isStatic",type:e},{name:"method",type:Ft}],Y.typeName="ClassExpression",Y.fields=[{name:"type",type:a(o),value:"ClassExpression"},{name:"name",type:i(S)},{name:"super",type:i(w)},{name:"elements",type:n(H)}],ae.typeName="CompoundAssignmentExpression",ae.fields=[{name:"type",type:a(o),value:"CompoundAssignmentExpression"},{name:"binding",type:l(b,Z)},{name:"operator",type:A},{name:"expression",type:w}],ee.typeName="ComputedMemberAssignmentTarget",ee.fields=[{name:"type",type:a(o),value:"ComputedMemberAssignmentTarget"},{name:"object",type:l(w,oe)},{name:"expression",type:w}],te.typeName="ComputedMemberExpression",te.fields=[{name:"type",type:a(o),value:"ComputedMemberExpression"},{name:"object",type:l(w,oe)},{name:"expression",type:w}],v.typeName="ComputedPropertyName",v.fields=[{name:"type",type:a(o),value:"ComputedPropertyName"},{name:"expression",type:w}],X.typeName="ConditionalExpression",X.fields=[{name:"type",type:a(o),value:"ConditionalExpression"},{name:"test",type:w},{name:"consequent",type:w},{name:"alternate",type:w}],re.typeName="ContinueStatement",re.fields=[{name:"type",type:a(o),value:"ContinueStatement"},{name:"label",type:i(u)}],Ee.typeName="DataProperty",Ee.fields=[{name:"type",type:a(o),value:"DataProperty"},{name:"name",type:he},{name:"expression",type:w}],q.typeName="DebuggerStatement",q.fields=[{name:"type",type:a(o),value:"DebuggerStatement"}],K.typeName="Directive",K.fields=[{name:"type",type:a(o),value:"Directive"},{name:"rawValue",type:u}],le.typeName="DoWhileStatement",le.fields=[{name:"type",type:a(o),value:"DoWhileStatement"},{name:"body",type:j},{name:"test",type:w}],ue.typeName="EmptyStatement",ue.fields=[{name:"type",type:a(o),value:"EmptyStatement"}],se.typeName="Export",se.fields=[{name:"type",type:a(o),value:"Export"},{name:"declaration",type:l(M,me,ne)}],W.typeName="ExportAllFrom",W.fields=[{name:"type",type:a(o),value:"ExportAllFrom"},{name:"moduleSpecifier",type:u}],z.typeName="ExportDefault",z.fields=[{name:"type",type:a(o),value:"ExportDefault"},{name:"body",type:l(M,w,me)}],ce.typeName="ExportFrom",ce.fields=[{name:"type",type:a(o),value:"ExportFrom"},{name:"namedExports",type:n(De)},{name:"moduleSpecifier",type:u}],De.typeName="ExportFromSpecifier",De.fields=[{name:"type",type:a(o),value:"ExportFromSpecifier"},{name:"name",type:u},{name:"exportedName",type:i(u)}],Ae.typeName="ExportLocalSpecifier",Ae.fields=[{name:"type",type:a(o),value:"ExportLocalSpecifier"},{name:"name",type:de},{name:"exportedName",type:i(u)}],xe.typeName="ExportLocals",xe.fields=[{name:"type",type:a(o),value:"ExportLocals"},{name:"namedExports",type:n(Ae)}],_e.typeName="ExpressionStatement",_e.fields=[{name:"type",type:a(o),value:"ExpressionStatement"},{name:"expression",type:w}],Ie.typeName="ForAwaitStatement",Ie.fields=[{name:"type",type:a(o),value:"ForAwaitStatement"},{name:"left",type:l(l(l(E,Q),l(b,Z)),ne)},{name:"right",type:w},{name:"body",type:j}],Re.typeName="ForInStatement",Re.fields=[{name:"type",type:a(o),value:"ForInStatement"},{name:"left",type:l(l(l(E,Q),l(b,Z)),ne)},{name:"right",type:w},{name:"body",type:j}],Ne.typeName="ForOfStatement",Ne.fields=[{name:"type",type:a(o),value:"ForOfStatement"},{name:"left",type:l(l(l(E,Q),l(b,Z)),ne)},{name:"right",type:w},{name:"body",type:j}],we.typeName="ForStatement",we.fields=[{name:"type",type:a(o),value:"ForStatement"},{name:"init",type:i(l(w,ne))},{name:"test",type:i(w)},{name:"update",type:i(w)},{name:"body",type:j}],pe.typeName="FormalParameters",pe.fields=[{name:"type",type:a(o),value:"FormalParameters"},{name:"items",type:n(l(N,l(S,l(D,J))))},{name:"rest",type:i(l(S,l(D,J)))}],ie.typeName="FunctionBody",ie.fields=[{name:"type",type:a(o),value:"FunctionBody"},{name:"directives",type:n(K)},{name:"statements",type:n(j)}],me.typeName="FunctionDeclaration",me.fields=[{name:"type",type:a(o),value:"FunctionDeclaration"},{name:"isAsync",type:e},{name:"isGenerator",type:e},{name:"name",type:S},{name:"params",type:pe},{name:"body",type:ie}],ye.typeName="FunctionExpression",ye.fields=[{name:"type",type:a(o),value:"FunctionExpression"},{name:"isAsync",type:e},{name:"isGenerator",type:e},{name:"name",type:i(S)},{name:"params",type:pe},{name:"body",type:ie}],be.typeName="Getter",be.fields=[{name:"type",type:a(o),value:"Getter"},{name:"name",type:he},{name:"body",type:ie}],de.typeName="IdentifierExpression",de.fields=[{name:"type",type:a(o),value:"IdentifierExpression"},{name:"name",type:u}],Le.typeName="IfStatement",Le.fields=[{name:"type",type:a(o),value:"IfStatement"},{name:"test",type:w},{name:"consequent",type:j},{name:"alternate",type:i(j)}],$e.typeName="Import",$e.fields=[{name:"type",type:a(o),value:"Import"},{name:"defaultBinding",type:i(S)},{name:"namedImports",type:n(Se)},{name:"moduleSpecifier",type:u}],Pe.typeName="ImportNamespace",Pe.fields=[{name:"type",type:a(o),value:"ImportNamespace"},{name:"defaultBinding",type:i(S)},{name:"namespaceBinding",type:S},{name:"moduleSpecifier",type:u}],Se.typeName="ImportSpecifier",Se.fields=[{name:"type",type:a(o),value:"ImportSpecifier"},{name:"name",type:i(u)},{name:"binding",type:S}],Oe.typeName="LabeledStatement",Oe.fields=[{name:"type",type:a(o),value:"LabeledStatement"},{name:"label",type:u},{name:"body",type:j}],ke.typeName="LiteralBooleanExpression",ke.fields=[{name:"type",type:a(o),value:"LiteralBooleanExpression"},{name:"value",type:e}],Me.typeName="LiteralInfinityExpression",Me.fields=[{name:"type",type:a(o),value:"LiteralInfinityExpression"}],ve.typeName="LiteralNullExpression",ve.fields=[{name:"type",type:a(o),value:"LiteralNullExpression"}],We.typeName="LiteralNumericExpression",We.fields=[{name:"type",type:a(o),value:"LiteralNumericExpression"},{name:"value",type:r}],Ge.typeName="LiteralRegExpExpression",Ge.fields=[{name:"type",type:a(o),value:"LiteralRegExpExpression"},{name:"pattern",type:u},{name:"global",type:e},{name:"ignoreCase",type:e},{name:"multiLine",type:e},{name:"dotAll",type:e},{name:"unicode",type:e},{name:"sticky",type:e}],Ue.typeName="LiteralStringExpression",Ue.fields=[{name:"type",type:a(o),value:"LiteralStringExpression"},{name:"value",type:u}],qe.typeName="Method",qe.fields=[{name:"type",type:a(o),value:"Method"},{name:"isAsync",type:e},{name:"isGenerator",type:e},{name:"name",type:he},{name:"params",type:pe},{name:"body",type:ie}],He.typeName="Module",He.fields=[{name:"type",type:a(o),value:"Module"},{name:"directives",type:n(K)},{name:"items",type:n(l(dt,ft,j))}],Ve.typeName="NewExpression",Ve.fields=[{name:"type",type:a(o),value:"NewExpression"},{name:"callee",type:w},{name:"arguments",type:n(l(w,fe))}],je.typeName="NewTargetExpression",je.fields=[{name:"type",type:a(o),value:"NewTargetExpression"}],Q.typeName="ObjectAssignmentTarget",Q.fields=[{name:"type",type:a(o),value:"ObjectAssignmentTarget"},{name:"properties",type:n(mt)},{name:"rest",type:i(l(b,Z))}],J.typeName="ObjectBinding",J.fields=[{name:"type",type:a(o),value:"ObjectBinding"},{name:"properties",type:n(Ct)},{name:"rest",type:i(S)}],Ye.typeName="ObjectExpression",Ye.fields=[{name:"type",type:a(o),value:"ObjectExpression"},{name:"properties",type:n(yt)}],Xe.typeName="ReturnStatement",Xe.fields=[{name:"type",type:a(o),value:"ReturnStatement"},{name:"expression",type:i(w)}],Ke.typeName="Script",Ke.fields=[{name:"type",type:a(o),value:"Script"},{name:"directives",type:n(K)},{name:"statements",type:n(j)}],ze.typeName="Setter",ze.fields=[{name:"type",type:a(o),value:"Setter"},{name:"name",type:he},{name:"param",type:l(N,l(S,l(D,J)))},{name:"body",type:ie}],Je.typeName="ShorthandProperty",Je.fields=[{name:"type",type:a(o),value:"ShorthandProperty"},{name:"name",type:de}],fe.typeName="SpreadElement",fe.fields=[{name:"type",type:a(o),value:"SpreadElement"},{name:"expression",type:w}],Ze.typeName="SpreadProperty",Ze.fields=[{name:"type",type:a(o),value:"SpreadProperty"},{name:"expression",type:w}],Qe.typeName="StaticMemberAssignmentTarget",Qe.fields=[{name:"type",type:a(o),value:"StaticMemberAssignmentTarget"},{name:"object",type:l(w,oe)},{name:"property",type:u}],et.typeName="StaticMemberExpression",et.fields=[{name:"type",type:a(o),value:"StaticMemberExpression"},{name:"object",type:l(w,oe)},{name:"property",type:u}],tt.typeName="StaticPropertyName",tt.fields=[{name:"type",type:a(o),value:"StaticPropertyName"},{name:"value",type:u}],oe.typeName="Super",oe.fields=[{name:"type",type:a(o),value:"Super"}],Ce.typeName="SwitchCase",Ce.fields=[{name:"type",type:a(o),value:"SwitchCase"},{name:"test",type:w},{name:"consequent",type:n(j)}],ge.typeName="SwitchDefault",ge.fields=[{name:"type",type:a(o),value:"SwitchDefault"},{name:"consequent",type:n(j)}],rt.typeName="SwitchStatement",rt.fields=[{name:"type",type:a(o),value:"SwitchStatement"},{name:"discriminant",type:w},{name:"cases",type:n(Ce)}],ut.typeName="SwitchStatementWithDefault",ut.fields=[{name:"type",type:a(o),value:"SwitchStatementWithDefault"},{name:"discriminant",type:w},{name:"preDefaultCases",type:n(Ce)},{name:"defaultCase",type:ge},{name:"postDefaultCases",type:n(Ce)}],Te.typeName="TemplateElement",Te.fields=[{name:"type",type:a(o),value:"TemplateElement"},{name:"rawValue",type:u}],st.typeName="TemplateExpression",st.fields=[{name:"type",type:a(o),value:"TemplateExpression"},{name:"tag",type:i(w)},{name:"elements",type:n(l(w,Te))}],it.typeName="ThisExpression",it.fields=[{name:"type",type:a(o),value:"ThisExpression"}],nt.typeName="ThrowStatement",nt.fields=[{name:"type",type:a(o),value:"ThrowStatement"},{name:"expression",type:w}],at.typeName="TryCatchStatement",at.fields=[{name:"type",type:a(o),value:"TryCatchStatement"},{name:"body",type:R},{name:"catchClause",type:k}],ot.typeName="TryFinallyStatement",ot.fields=[{name:"type",type:a(o),value:"TryFinallyStatement"},{name:"body",type:R},{name:"catchClause",type:i(k)},{name:"finalizer",type:R}],lt.typeName="UnaryExpression",lt.fields=[{name:"type",type:a(o),value:"UnaryExpression"},{name:"operator",type:d},{name:"operand",type:w}],ct.typeName="UpdateExpression",ct.fields=[{name:"type",type:a(o),value:"UpdateExpression"},{name:"isPrefix",type:e},{name:"operator",type:m},{name:"operand",type:l(b,Z)}],ne.typeName="VariableDeclaration",ne.fields=[{name:"type",type:a(o),value:"VariableDeclaration"},{name:"kind",type:f},{name:"declarators",type:n(Be)}],pt.typeName="VariableDeclarationStatement",pt.fields=[{name:"type",type:a(o),value:"VariableDeclarationStatement"},{name:"declaration",type:ne}],Be.typeName="VariableDeclarator",Be.fields=[{name:"type",type:a(o),value:"VariableDeclarator"},{name:"binding",type:l(S,l(D,J))},{name:"init",type:i(w)}],ht.typeName="WhileStatement",ht.fields=[{name:"type",type:a(o),value:"WhileStatement"},{name:"test",type:w},{name:"body",type:j}],Et.typeName="WithStatement",Et.fields=[{name:"type",type:a(o),value:"WithStatement"},{name:"object",type:w},{name:"body",type:j}],Dt.typeName="YieldExpression",Dt.fields=[{name:"type",type:a(o),value:"YieldExpression"},{name:"expression",type:i(w)}],At.typeName="YieldGeneratorExpression",At.fields=[{name:"type",type:a(o),value:"YieldGeneratorExpression"},{name:"expression",type:w}],s}(),estraverse$1={};(function(s){(function e(r){var u,i,n,a,l,o;function c(B){var g={},x,C;for(x in B)B.hasOwnProperty(x)&&(C=B[x],typeof C=="object"&&C!==null?g[x]=c(C):g[x]=C);return g}function A(B,g){var x,C,S,L;for(C=B.length,S=0;C;)x=C>>>1,L=S+x,g(B[L])?C=x:(S=L+1,C-=x+1);return S}u={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"},n={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"]},a={},l={},o={},i={Break:a,Skip:l,Remove:o};function d(B,g){this.parent=B,this.key=g}d.prototype.replace=function(g){this.parent[this.key]=g},d.prototype.remove=function(){return Array.isArray(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)};function m(B,g,x,C){this.node=B,this.path=g,this.wrap=x,this.ref=C}function f(){}f.prototype.path=function(){var g,x,C,S,L,$;function N(R,O){if(Array.isArray(O))for(C=0,S=O.length;C=0;--x)if(B[x].node===g)return!0;return!1}f.prototype.traverse=function(g,x){var C,S,L,$,N,R,O,U,G,k,M,H;for(this.__initialize(g,x),H={},C=this.__worklist,S=this.__leavelist,C.push(new m(g,null,null,null)),S.push(new m(null,null,null,null));C.length;){if(L=C.pop(),L===H){if(L=S.pop(),R=this.__execute(x.leave,L),this.__state===a||R===a)return;continue}if(L.node){if(R=this.__execute(x.enter,L),this.__state===a||R===a)return;if(C.push(H),S.push(L),this.__state===l||R===l)continue;if($=L.node,N=$.type||L.wrap,k=this.__keys[N],!k)if(this.__fallback)k=this.__fallback($);else throw new Error("Unknown node type "+N+".");for(U=k.length;(U-=1)>=0;)if(O=k[U],M=$[O],!!M){if(Array.isArray(M)){for(G=M.length;(G-=1)>=0;)if(!!M[G]&&!h(S,M[G])){if(D(N,k[U]))L=new m(M[G],[O,G],"Property",null);else if(E(M[G]))L=new m(M[G],[O,G],null,null);else continue;C.push(L)}}else if(E(M)){if(h(S,M))continue;C.push(new m(M,O,null,null))}}}}},f.prototype.replace=function(g,x){var C,S,L,$,N,R,O,U,G,k,M,H,Y;function ae(ee){var te,v,X,re;if(ee.ref.remove()){for(v=ee.ref.key,re=ee.ref.parent,te=C.length;te--;)if(X=C[te],X.ref&&X.ref.parent===re){if(X.ref.key=0;)if(Y=G[O],k=L[Y],!!k)if(Array.isArray(k)){for(U=k.length;(U-=1)>=0;)if(!!k[U]){if(D($,G[O]))R=new m(k[U],[Y,U],"Property",new d(k,U));else if(E(k[U]))R=new m(k[U],[Y,U],null,new d(k,U));else continue;C.push(R)}}else E(k)&&C.push(new m(k,Y,null,new d(L,Y)))}}return H.root};function y(B,g){var x=new f;return x.traverse(B,g)}function _(B,g){var x=new f;return x.replace(B,g)}function b(B,g){var x;return x=A(g,function(S){return S.range[0]>B.range[0]}),B.extendedRange=[B.range[0],B.range[1]],x!==g.length&&(B.extendedRange[1]=g[x].range[0]),x-=1,x>=0&&(B.extendedRange[0]=g[x].range[1]),B}function P(B,g,x){var C=[],S,L,$,N;if(!B.range)throw new Error("attachComments needs range information");if(!x.length){if(g.length){for($=0,L=g.length;$R.range[0]));)O.extendedRange[1]===R.range[0]?(R.leadingComments||(R.leadingComments=[]),R.leadingComments.push(O),C.splice(N,1)):N+=1;if(N===C.length)return i.Break;if(C[N].extendedRange[0]>R.range[1])return i.Skip}}),N=0,y(B,{leave:function(R){for(var O;NR.range[1])return i.Skip}}),B}return r.Syntax=u,r.traverse=y,r.replace=_,r.attachComments=P,r.VisitorKeys=n,r.VisitorOption=i,r.Controller=f,r.cloneEnvironment=function(){return e({})},r})(s)})(estraverse$1);const Spec=dist.default||dist,estraverse=estraverse$1.cloneEnvironment();Object.keys(estraverse.Syntax).filter(s=>s!=="Property").forEach(s=>{delete estraverse.Syntax[s],delete estraverse.VisitorKeys[s]});Object.assign(estraverse.Syntax,Object.keys(Spec).reduce((s,e)=>(s[e]=e,s),{}));Object.assign(estraverse.VisitorKeys,Object.keys(Spec).reduce((s,e)=>(s[e]=Spec[e].fields.map(r=>r.name),s),{}));const whitespaceArray=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],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],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]$/,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],idContinueLargeRegex$1=/^[\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]$/,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,!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];var unicode={whitespaceArray,whitespaceBool,idStartLargeRegex,idStartBool,idContinueLargeRegex:idContinueLargeRegex$1,idContinueBool:idContinueBool$1};const{idContinueLargeRegex,idContinueBool}=unicode;function isIdentifierPartES6(s){let e=s.charCodeAt(0);return e<128?idContinueBool[e]:idContinueLargeRegex.test(s)}function needsDoubleDot$1(s){return s.indexOf(".")<0&&s.indexOf("e")<0&&s.indexOf("x")<0}function renderNumber(s){let e;return s>=1e3&&s%10===0?(e=s.toString(10),/[eE]/.test(e)?e.replace(/[eE]\+/,"e"):s.toString(10).replace(/0{3,}$/,r=>"e"+r.length)):s%1===0?s>1e15&&s<1e20?"0x"+s.toString(16).toUpperCase():s.toString(10).replace(/[eE]\+/,"e"):s.toString(10).replace(/^0\./,".").replace(/[eE]\+/,"e")}class TokenStream$2{constructor(){this.result="",this.lastNumber=null,this.lastCodePoint=null,this.lastTokenStr="",this.optionalSemi=!1,this.previousWasRegExp=!1,this.partialHtmlComment=!1}putNumber(e){let r=renderNumber(e);this.put(r),this.lastNumber=r}putOptionalSemi(){this.optionalSemi=!0}putRaw(e){this.result+=e,this.lastTokenStr=e}put(e,r){if(this.optionalSemi&&(this.optionalSemi=!1,e!=="}"&&(this.result+=";",this.lastCodePoint=";",this.previousWasRegExp=!1)),this.lastNumber!==null&&e.length===1&&e==="."){this.result+=needsDoubleDot$1(this.lastNumber)?"..":".",this.lastNumber=null,this.lastCodePoint=".";return}let u=[...e].length;if(u>0){this.lastNumber=null;let i=String.fromCodePoint(e.codePointAt(0)),n=this.lastCodePoint;this.lastCodePoint=String.fromCodePoint(e.codePointAt(u-1));let a=this.previousWasRegExp;this.previousWasRegExp=r,n&&((n==="+"||n==="-")&&n===i||isIdentifierPartES6(n)&&isIdentifierPartES6(i)||n==="/"&&i==="/"||a&&i==="i"||this.partialHtmlComment&&e.startsWith("--"))&&(this.result+=" ")}this.partialHtmlComment=this.lastTokenStr.endsWith("<")&&e==="!",this.result+=e,this.lastTokenStr=e}}var tokenStream={needsDoubleDot:needsDoubleDot$1,TokenStream:TokenStream$2};/* +object-assign +(c) Sindre Sorhus +@license MIT +*/var getOwnPropertySymbols=Object.getOwnPropertySymbols,hasOwnProperty=Object.prototype.hasOwnProperty,propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(s){if(s==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(s)}function shouldUseNative(){try{if(!Object.assign)return!1;var s=new String("abc");if(s[5]="de",Object.getOwnPropertyNames(s)[0]==="5")return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;var u=Object.getOwnPropertyNames(e).map(function(n){return e[n]});if(u.join("")!=="0123456789")return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(n){i[n]=n}),Object.keys(Object.assign({},i)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}var objectAssign$2=shouldUseNative()?Object.assign:function(s,e){for(var r,u=toObject(s),i,n=1;n=48&&h<=55}r=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279];function c(h){return h===32||h===9||h===11||h===12||h===160||h>=5760&&r.indexOf(h)>=0}function A(h){return h===10||h===13||h===8232||h===8233}function d(h){if(h<=65535)return String.fromCharCode(h);var y=String.fromCharCode(Math.floor((h-65536)/1024)+55296),_=String.fromCharCode((h-65536)%1024+56320);return y+_}for(u=new Array(128),n=0;n<128;++n)u[n]=n>=97&&n<=122||n>=65&&n<=90||n===36||n===95;for(i=new Array(128),n=0;n<128;++n)i[n]=n>=97&&n<=122||n>=65&&n<=90||n>=48&&n<=57||n===36||n===95;function m(h){return h<128?u[h]:e.NonAsciiIdentifierStart.test(d(h))}function f(h){return h<128?i[h]:e.NonAsciiIdentifierPart.test(d(h))}function E(h){return h<128?u[h]:s.NonAsciiIdentifierStart.test(d(h))}function D(h){return h<128?i[h]:s.NonAsciiIdentifierPart.test(d(h))}code.exports={isDecimalDigit:a,isHexDigit:l,isOctalDigit:o,isWhiteSpace:c,isLineTerminator:A,isIdentifierStartES5:m,isIdentifierPartES5:f,isIdentifierStartES6:E,isIdentifierPartES6:D}})();var keyword$2={exports:{}};(function(){var s=code.exports;function e(m){switch(m){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}function r(m,f){return!f&&m==="yield"?!1:u(m,f)}function u(m,f){if(f&&e(m))return!0;switch(m.length){case 2:return m==="if"||m==="in"||m==="do";case 3:return m==="var"||m==="for"||m==="new"||m==="try";case 4:return m==="this"||m==="else"||m==="case"||m==="void"||m==="with"||m==="enum";case 5:return m==="while"||m==="break"||m==="catch"||m==="throw"||m==="const"||m==="yield"||m==="class"||m==="super";case 6:return m==="return"||m==="typeof"||m==="delete"||m==="switch"||m==="export"||m==="import";case 7:return m==="default"||m==="finally"||m==="extends";case 8:return m==="function"||m==="continue"||m==="debugger";case 10:return m==="instanceof";default:return!1}}function i(m,f){return m==="null"||m==="true"||m==="false"||r(m,f)}function n(m,f){return m==="null"||m==="true"||m==="false"||u(m,f)}function a(m){return m==="eval"||m==="arguments"}function l(m){var f,E,D;if(m.length===0||(D=m.charCodeAt(0),!s.isIdentifierStartES5(D)))return!1;for(f=1,E=m.length;f=E||(h=m.charCodeAt(f),!(56320<=h&&h<=57343)))return!1;D=o(D,h)}if(!y(D))return!1;y=s.isIdentifierPartES6}return!0}function A(m,f){return l(m)&&!i(m,f)}function d(m,f){return c(m)&&!n(m,f)}keyword$2.exports={isKeywordES5:r,isKeywordES6:u,isReservedWordES5:i,isReservedWordES6:n,isRestrictedWord:a,isIdentifierNameES5:l,isIdentifierNameES6:c,isIdentifierES5:A,isIdentifierES6:d}})();(function(){utils.ast=ast.exports,utils.code=code.exports,utils.keyword=keyword$2.exports})();const Precedence$3={Sequence:0,Yield:1,Assignment:1,Conditional:2,ArrowFunction:2,LogicalOR:3,LogicalAND:4,BitwiseOR:5,BitwiseXOR:6,BitwiseAND:7,Equality:8,Relational:9,BitwiseSHIFT:10,Additive:11,Multiplicative:12,Exponential:13,Prefix:14,Postfix:15,New:16,Call:17,TaggedTemplate:18,Member:19,Primary:20},BinaryPrecedence={",":Precedence$3.Sequence,"||":Precedence$3.LogicalOR,"&&":Precedence$3.LogicalAND,"|":Precedence$3.BitwiseOR,"^":Precedence$3.BitwiseXOR,"&":Precedence$3.BitwiseAND,"==":Precedence$3.Equality,"!=":Precedence$3.Equality,"===":Precedence$3.Equality,"!==":Precedence$3.Equality,"<":Precedence$3.Relational,">":Precedence$3.Relational,"<=":Precedence$3.Relational,">=":Precedence$3.Relational,in:Precedence$3.Relational,instanceof:Precedence$3.Relational,"<<":Precedence$3.BitwiseSHIFT,">>":Precedence$3.BitwiseSHIFT,">>>":Precedence$3.BitwiseSHIFT,"+":Precedence$3.Additive,"-":Precedence$3.Additive,"*":Precedence$3.Multiplicative,"%":Precedence$3.Multiplicative,"/":Precedence$3.Multiplicative,"**":Precedence$3.Exponential};function getPrecedence$3(s){switch(s.type){case"ArrayExpression":case"FunctionExpression":case"ClassExpression":case"IdentifierExpression":case"AssignmentTargetIdentifier":case"NewTargetExpression":case"Super":case"LiteralBooleanExpression":case"LiteralNullExpression":case"LiteralNumericExpression":case"LiteralInfinityExpression":case"LiteralRegExpExpression":case"LiteralStringExpression":case"ObjectExpression":case"ThisExpression":case"SpreadElement":case"FunctionBody":return Precedence$3.Primary;case"ArrowExpression":case"AssignmentExpression":case"CompoundAssignmentExpression":case"YieldExpression":case"YieldGeneratorExpression":return Precedence$3.Assignment;case"ConditionalExpression":return Precedence$3.Conditional;case"ComputedMemberExpression":case"StaticMemberExpression":case"ComputedMemberAssignmentTarget":case"StaticMemberAssignmentTarget":switch(s.object.type){case"CallExpression":case"ComputedMemberExpression":case"StaticMemberExpression":case"TemplateExpression":return getPrecedence$3(s.object);default:return Precedence$3.Member}case"TemplateExpression":if(s.tag==null)return Precedence$3.Member;switch(s.tag.type){case"CallExpression":case"ComputedMemberExpression":case"StaticMemberExpression":case"TemplateExpression":return getPrecedence$3(s.tag);default:return Precedence$3.Member}case"BinaryExpression":return BinaryPrecedence[s.operator];case"CallExpression":return Precedence$3.Call;case"NewExpression":return s.arguments.length===0?Precedence$3.New:Precedence$3.Member;case"UpdateExpression":return s.isPrefix?Precedence$3.Prefix:Precedence$3.Postfix;case"AwaitExpression":case"UnaryExpression":return Precedence$3.Prefix;default:throw new Error("unreachable: "+s.type)}}function escapeStringLiteral$3(s){let e="",r=0,u=0;for(let n=0,a=s.length;nr?"'":'"';e+=i;for(let n=0;nu.emit(e,r))}forEach(e){e(this),this.children.forEach(r=>r.forEach(e))}}class Semi$2 extends Token$3{constructor(){super(";")}}class CommaSep$2 extends CodeRep$2{constructor(e){super(),this.children=e}emit(e,r){let u=!0;this.children.forEach(i=>{u?u=!1:e.put(","),i.emit(e,r)})}forEach(e){e(this),this.children.forEach(r=>r.forEach(e))}}class SemiOp$3 extends CodeRep$2{constructor(){super()}emit(e){e.putOptionalSemi()}}var coderep={Precedence:Precedence$3,getPrecedence:getPrecedence$3,escapeStringLiteral:escapeStringLiteral$3,CodeRep:CodeRep$2,Empty:Empty$3,Token:Token$3,RawToken:RawToken$1,NumberCodeRep:NumberCodeRep$3,Paren:Paren$3,Bracket:Bracket$3,Brace:Brace$3,NoIn:NoIn$3,ContainsIn:ContainsIn$3,Seq:Seq$3,Semi:Semi$2,CommaSep:CommaSep$2,SemiOp:SemiOp$3};const objectAssign$1=objectAssign$2,{keyword:keyword$1}=utils,{Precedence:Precedence$2,getPrecedence:getPrecedence$2,escapeStringLiteral:escapeStringLiteral$2,Empty:Empty$2,Token:Token$2,RawToken,NumberCodeRep:NumberCodeRep$2,Paren:Paren$2,Bracket:Bracket$2,Brace:Brace$2,NoIn:NoIn$2,ContainsIn:ContainsIn$2,Seq:Seq$2,Semi:Semi$1,CommaSep:CommaSep$1,SemiOp:SemiOp$2}=coderep;function p(s,e,r){return getPrecedence$2(s)0&&r[r.length-1]==null&&(u=seq$1(u,t(","))),bracket(u)}reduceAwaitExpression(e,{expression:r}){return seq$1(t("await"),p(e.expression,getPrecedence$2(e),r))}reduceSpreadElement(e,{expression:r}){return seq$1(t("..."),p(e.expression,Precedence$2.Assignment,r))}reduceSpreadProperty(e,{expression:r}){return seq$1(t("..."),getAssignmentExpr(r))}reduceAssignmentExpression(e,{binding:r,expression:u}){let i=r,n=u,a=u.containsIn,l=r.startsWithCurly,o=r.startsWithLetSquareBracket,c=r.startsWithFunctionOrClass;return getPrecedence$2(e.expression)0&&r[r.length-1]==null&&(i=seq$1(i,t(",")))),bracket(i)}reduceArrayBinding(e,{elements:r,rest:u}){let i;return r.length===0?i=u==null?empty$1():seq$1(t("..."),u):(r=r.concat(u==null?[]:[seq$1(t("..."),u)]),i=commaSep(r.map(getAssignmentExpr)),r.length>0&&r[r.length-1]==null&&(i=seq$1(i,t(",")))),bracket(i)}reduceObjectAssignmentTarget(e,{properties:r,rest:u}){let i=commaSep(r);r.length===0?i=u==null?empty$1():seq$1(t("..."),u):i=u==null?i:seq$1(i,t(","),t("..."),u);let n=brace(i);return n.startsWithCurly=!0,n}reduceObjectBinding(e,{properties:r,rest:u}){let i=commaSep(r);r.length===0?i=u==null?empty$1():seq$1(t("..."),u):i=u==null?i:seq$1(i,t(","),t("..."),u);let n=brace(i);return n.startsWithCurly=!0,n}reduceAssignmentTargetPropertyIdentifier(e,{binding:r,init:u}){return e.init==null?r:seq$1(r,t("="),p(e.init,Precedence$2.Assignment,u))}reduceAssignmentTargetPropertyProperty(e,{name:r,binding:u}){return seq$1(r,t(":"),u)}reduceBindingPropertyIdentifier(e,{binding:r,init:u}){return e.init==null?r:seq$1(r,t("="),p(e.init,Precedence$2.Assignment,u))}reduceBindingPropertyProperty(e,{name:r,binding:u}){return seq$1(r,t(":"),u)}reduceBlock(e,{statements:r}){return brace(seq$1(...r))}reduceBlockStatement(e,{block:r}){return r}reduceBreakStatement(e){return seq$1(t("break"),e.label?t(e.label):empty$1(),semiOp())}reduceCallExpression(e,{callee:r,arguments:u}){const i=u.map((n,a)=>p(e.arguments[a],Precedence$2.Assignment,n));return objectAssign$1(seq$1(p(e.callee,getPrecedence$2(e),r),paren(commaSep(i))),{startsWithCurly:r.startsWithCurly,startsWithLet:r.startsWithLet,startsWithLetSquareBracket:r.startsWithLetSquareBracket,startsWithFunctionOrClass:r.startsWithFunctionOrClass})}reduceCatchClause(e,{binding:r,body:u}){return r==null?seq$1(t("catch"),u):seq$1(t("catch"),paren(r),u)}reduceClassDeclaration(e,{name:r,super:u,elements:i}){let n=seq$1(t("class"),e.name.name==="*default*"?empty$1():r);return u!=null&&(n=seq$1(n,t("extends"),p(e.super,Precedence$2.New,u))),n=seq$1(n,t("{"),...i,t("}")),n}reduceClassExpression(e,{name:r,super:u,elements:i}){let n=t("class");return r!=null&&(n=seq$1(n,r)),u!=null&&(n=seq$1(n,t("extends"),p(e.super,Precedence$2.New,u))),n=seq$1(n,t("{"),...i,t("}")),n.startsWithFunctionOrClass=!0,n}reduceClassElement(e,{method:r}){return e.isStatic?seq$1(t("static"),r):r}reduceComputedMemberAssignmentTarget(e,{object:r,expression:u}){let i=r.startsWithLetSquareBracket||e.object.type==="IdentifierExpression"&&e.object.name==="let";return objectAssign$1(seq$1(p(e.object,getPrecedence$2(e),r),bracket(u)),{startsWithLet:r.startsWithLet,startsWithLetSquareBracket:i,startsWithCurly:r.startsWithCurly,startsWithFunctionOrClass:r.startsWithFunctionOrClass})}reduceComputedMemberExpression(e,{object:r,expression:u}){let i=r.startsWithLetSquareBracket||e.object.type==="IdentifierExpression"&&e.object.name==="let";return objectAssign$1(seq$1(p(e.object,getPrecedence$2(e),r),bracket(u)),{startsWithLet:r.startsWithLet,startsWithLetSquareBracket:i,startsWithCurly:r.startsWithCurly,startsWithFunctionOrClass:r.startsWithFunctionOrClass})}reduceComputedPropertyName(e,{expression:r}){return bracket(p(e.expression,Precedence$2.Assignment,r))}reduceConditionalExpression(e,{test:r,consequent:u,alternate:i}){let n=r.containsIn||i.containsIn,a=r.startsWithCurly,l=r.startsWithLetSquareBracket,o=r.startsWithFunctionOrClass;return objectAssign$1(seq$1(p(e.test,Precedence$2.LogicalOR,r),t("?"),p(e.consequent,Precedence$2.Assignment,u),t(":"),p(e.alternate,Precedence$2.Assignment,i)),{containsIn:n,startsWithCurly:a,startsWithLetSquareBracket:l,startsWithFunctionOrClass:o})}reduceContinueStatement(e){return seq$1(t("continue"),e.label?t(e.label):empty$1(),semiOp())}reduceDataProperty(e,{name:r,expression:u}){return seq$1(r,t(":"),getAssignmentExpr(u))}reduceDebuggerStatement(){return seq$1(t("debugger"),semiOp())}reduceDoWhileStatement(e,{body:r,test:u}){return seq$1(t("do"),r,t("while"),paren(u),semiOp())}reduceEmptyStatement(){return semi()}reduceExpressionStatement(e,{expression:r}){let u=r.startsWithCurly||r.startsWithLetSquareBracket||r.startsWithFunctionOrClass;return seq$1(u?paren(r):r,semiOp())}reduceForInStatement(e,{left:r,right:u,body:i}){return r=e.left.type==="VariableDeclaration"?noIn$1(markContainsIn$1(r)):r,objectAssign$1(seq$1(t("for"),paren(seq$1(r.startsWithLet?paren(r):r,t("in"),u)),i),{endsWithMissingElse:i.endsWithMissingElse})}reduceForOfStatement(e,{left:r,right:u,body:i}){return r=e.left.type==="VariableDeclaration"?noIn$1(markContainsIn$1(r)):r,objectAssign$1(seq$1(t("for"),paren(seq$1(r.startsWithLet?paren(r):r,t("of"),p(e.right,Precedence$2.Assignment,u))),i),{endsWithMissingElse:i.endsWithMissingElse})}reduceForStatement(e,{init:r,test:u,update:i,body:n}){return r&&(r.startsWithLetSquareBracket&&(r=paren(r)),r=noIn$1(markContainsIn$1(r))),objectAssign$1(seq$1(t("for"),paren(seq$1(r||empty$1(),semi(),u||empty$1(),semi(),i||empty$1())),n),{endsWithMissingElse:n.endsWithMissingElse})}reduceForAwaitStatement(e,{left:r,right:u,body:i}){return r=e.left.type==="VariableDeclaration"?noIn$1(markContainsIn$1(r)):r,objectAssign$1(seq$1(t("for"),t("await"),paren(seq$1(r.startsWithLet?paren(r):r,t("of"),p(e.right,Precedence$2.Assignment,u))),i),{endsWithMissingElse:i.endsWithMissingElse})}reduceFunctionBody(e,{directives:r,statements:u}){return u.length&&(u[0]=this.parenToAvoidBeingDirective(e.statements[0],u[0])),brace(seq$1(...r,...u))}reduceFunctionDeclaration(e,{name:r,params:u,body:i}){return seq$1(e.isAsync?t("async"):empty$1(),t("function"),e.isGenerator?t("*"):empty$1(),e.name.name==="*default*"?empty$1():r,u,i)}reduceFunctionExpression(e,{name:r,params:u,body:i}){let n=seq$1(e.isAsync?t("async"):empty$1(),t("function"),e.isGenerator?t("*"):empty$1(),r||empty$1(),u,i);return n.startsWithFunctionOrClass=!0,n}reduceFormalParameters(e,{items:r,rest:u}){return paren(commaSep(r.concat(u==null?[]:[seq$1(t("..."),u)])))}reduceArrowExpression(e,{params:r,body:u}){r=this.regenerateArrowParams(e.params,r);let i=!1;return e.body.type!=="FunctionBody"&&(u.startsWithCurly?u=paren(u):u.containsIn&&(i=!0)),objectAssign$1(seq$1(e.isAsync?t("async"):empty$1(),r,t("=>"),p(e.body,Precedence$2.Assignment,u)),{containsIn:i})}reduceGetter(e,{name:r,body:u}){return seq$1(t("get"),r,paren(empty$1()),u)}reduceIdentifierExpression(e){let r=t(e.name);return e.name==="let"&&(r.startsWithLet=!0),r}reduceIfStatement(e,{test:r,consequent:u,alternate:i}){return i&&u.endsWithMissingElse&&(u=brace(u)),objectAssign$1(seq$1(t("if"),paren(r),u,i?seq$1(t("else"),i):empty$1()),{endsWithMissingElse:i?i.endsWithMissingElse:!0})}reduceImport(e,{defaultBinding:r,namedImports:u}){let i=[];return r!=null&&i.push(r),u.length>0&&i.push(brace(commaSep(u))),i.length===0?seq$1(t("import"),t(escapeStringLiteral$2(e.moduleSpecifier)),semiOp()):seq$1(t("import"),commaSep(i),t("from"),t(escapeStringLiteral$2(e.moduleSpecifier)),semiOp())}reduceImportNamespace(e,{defaultBinding:r,namespaceBinding:u}){return seq$1(t("import"),r==null?empty$1():seq$1(r,t(",")),t("*"),t("as"),u,t("from"),t(escapeStringLiteral$2(e.moduleSpecifier)),semiOp())}reduceImportSpecifier(e,{binding:r}){return e.name==null?r:seq$1(t(e.name),t("as"),r)}reduceExportAllFrom(e){return seq$1(t("export"),t("*"),t("from"),t(escapeStringLiteral$2(e.moduleSpecifier)),semiOp())}reduceExportFrom(e,{namedExports:r}){return seq$1(t("export"),brace(commaSep(r)),t("from"),t(escapeStringLiteral$2(e.moduleSpecifier)),semiOp())}reduceExportLocals(e,{namedExports:r}){return seq$1(t("export"),brace(commaSep(r)),semiOp())}reduceExport(e,{declaration:r}){switch(e.declaration.type){case"FunctionDeclaration":case"ClassDeclaration":break;default:r=seq$1(r,semiOp())}return seq$1(t("export"),r)}reduceExportDefault(e,{body:r}){switch(r=r.startsWithFunctionOrClass?paren(r):r,e.body.type){case"FunctionDeclaration":case"ClassDeclaration":return seq$1(t("export default"),r);default:return seq$1(t("export default"),p(e.body,Precedence$2.Assignment,r),semiOp())}}reduceExportFromSpecifier(e){return e.exportedName==null?t(e.name):seq$1(t(e.name),t("as"),t(e.exportedName))}reduceExportLocalSpecifier(e,{name:r}){return e.exportedName==null?r:seq$1(r,t("as"),t(e.exportedName))}reduceLabeledStatement(e,{body:r}){return objectAssign$1(seq$1(t(e.label+":"),r),{endsWithMissingElse:r.endsWithMissingElse})}reduceLiteralBooleanExpression(e){return t(e.value.toString())}reduceLiteralNullExpression(){return t("null")}reduceLiteralInfinityExpression(){return t("2e308")}reduceLiteralNumericExpression(e){return new NumberCodeRep$2(e.value)}reduceLiteralRegExpExpression(e){return t(`/${e.pattern}/${e.global?"g":""}${e.ignoreCase?"i":""}${e.multiLine?"m":""}${e.dotAll?"s":""}${e.unicode?"u":""}${e.sticky?"y":""}`,!0)}reduceLiteralStringExpression(e){return t(escapeStringLiteral$2(e.value))}reduceMethod(e,{name:r,params:u,body:i}){return seq$1(e.isAsync?t("async"):empty$1(),e.isGenerator?t("*"):empty$1(),r,u,i)}reduceModule(e,{directives:r,items:u}){return u.length&&(u[0]=this.parenToAvoidBeingDirective(e.items[0],u[0])),seq$1(...r,...u)}reduceNewExpression(e,{callee:r,arguments:u}){const i=u.map((a,l)=>p(e.arguments[l],Precedence$2.Assignment,a));let n=getPrecedence$2(e.callee)===Precedence$2.Call?paren(r):p(e.callee,getPrecedence$2(e),r);return seq$1(t("new"),n,u.length===0?empty$1():paren(commaSep(i)))}reduceNewTargetExpression(){return t("new.target")}reduceObjectExpression(e,{properties:r}){let u=brace(commaSep(r));return u.startsWithCurly=!0,u}reduceUpdateExpression(e,{operand:r}){return e.isPrefix?this.reduceUnaryExpression(...arguments):objectAssign$1(seq$1(p(e.operand,Precedence$2.New,r),t(e.operator)),{startsWithCurly:r.startsWithCurly,startsWithLetSquareBracket:r.startsWithLetSquareBracket,startsWithFunctionOrClass:r.startsWithFunctionOrClass})}reduceUnaryExpression(e,{operand:r}){return seq$1(t(e.operator),p(e.operand,getPrecedence$2(e),r))}reduceReturnStatement(e,{expression:r}){return seq$1(t("return"),r||empty$1(),semiOp())}reduceScript(e,{directives:r,statements:u}){return u.length&&(u[0]=this.parenToAvoidBeingDirective(e.statements[0],u[0])),seq$1(...r,...u)}reduceSetter(e,{name:r,param:u,body:i}){return seq$1(t("set"),r,paren(u),i)}reduceShorthandProperty(e,{name:r}){return r}reduceStaticMemberAssignmentTarget(e,{object:r}){const u=seq$1(p(e.object,getPrecedence$2(e),r),t("."),t(e.property));return u.startsWithLet=r.startsWithLet,u.startsWithCurly=r.startsWithCurly,u.startsWithLetSquareBracket=r.startsWithLetSquareBracket,u.startsWithFunctionOrClass=r.startsWithFunctionOrClass,u}reduceStaticMemberExpression(e,{object:r}){const u=seq$1(p(e.object,getPrecedence$2(e),r),t("."),t(e.property));return u.startsWithLet=r.startsWithLet,u.startsWithCurly=r.startsWithCurly,u.startsWithLetSquareBracket=r.startsWithLetSquareBracket,u.startsWithFunctionOrClass=r.startsWithFunctionOrClass,u}reduceStaticPropertyName(e){if(keyword$1.isIdentifierNameES6(e.value))return t(e.value);let r=parseFloat(e.value);return r>=0&&r.toString()===e.value?new NumberCodeRep$2(r):t(escapeStringLiteral$2(e.value))}reduceSuper(){return t("super")}reduceSwitchCase(e,{test:r,consequent:u}){return seq$1(t("case"),r,t(":"),seq$1(...u))}reduceSwitchDefault(e,{consequent:r}){return seq$1(t("default:"),seq$1(...r))}reduceSwitchStatement(e,{discriminant:r,cases:u}){return seq$1(t("switch"),paren(r),brace(seq$1(...u)))}reduceSwitchStatementWithDefault(e,{discriminant:r,preDefaultCases:u,defaultCase:i,postDefaultCases:n}){return seq$1(t("switch"),paren(r),brace(seq$1(...u,i,...n)))}reduceTemplateExpression(e,{tag:r,elements:u}){let i=e.tag==null?empty$1():p(e.tag,getPrecedence$2(e),r);i=seq$1(i,t("`"));for(let n=0,a=e.elements.length;n0?t("}"):empty$1(),u[n],ni?(i=!1,n):seq(this.sep(r),this.t(","),this.sep(u),n)),seq(...e)}semiOp(){return new SemiOp$1}sep(){return empty()}reduceArrayExpression(e,{elements:r}){if(r.length===0)return this.bracket(empty(),null,null,Sep$1.ARRAY_EMPTY);let u=this.commaSep(r.map(i=>this.getAssignmentExpr(i)),Sep$1.ARRAY_BEFORE_COMMA,Sep$1.ARRAY_AFTER_COMMA);return r.length>0&&r[r.length-1]==null&&(u=seq(u,this.sep(Sep$1.ARRAY_BEFORE_COMMA),this.t(","),this.sep(Sep$1.ARRAY_AFTER_COMMA))),this.bracket(u,Sep$1.ARRAY_INITIAL,Sep$1.ARRAY_FINAL)}reduceAwaitExpression(e,{expression:r}){return seq(this.t("await"),this.sep(Sep$1.AWAIT),this.p(e.expression,getPrecedence$1(e),r))}reduceSpreadElement(e,{expression:r}){return seq(this.t("..."),this.sep(Sep$1.SPREAD),this.p(e.expression,Precedence$1.Assignment,r))}reduceSpreadProperty(e,{expression:r}){return seq(this.t("..."),this.sep(Sep$1.SPREAD),this.getAssignmentExpr(r))}reduceAssignmentExpression(e,{binding:r,expression:u}){let i=r,n=u,a=u.containsIn,l=r.startsWithCurly,o=r.startsWithLetSquareBracket,c=r.startsWithFunctionOrClass;return getPrecedence$1(e.expression)this.getAssignmentExpr(n)),Sep$1.ARRAY_BEFORE_COMMA,Sep$1.ARRAY_AFTER_COMMA),r.length>0&&r[r.length-1]==null&&(i=seq(i,this.sep(Sep$1.ARRAY_BEFORE_COMMA),this.t(","),this.sep(Sep$1.ARRAY_AFTER_COMMA)))),this.bracket(i,Sep$1.ARRAY_INITIAL,Sep$1.ARRAY_FINAL,Sep$1.ARRAY_EMPTY)}reduceArrayBinding(e,{elements:r,rest:u}){let i;return r.length===0?i=u==null?empty():seq(this.t("..."),this.sep(Sep$1.REST),u):(r=r.concat(u==null?[]:[seq(this.t("..."),this.sep(Sep$1.REST),u)]),i=this.commaSep(r.map(n=>this.getAssignmentExpr(n)),Sep$1.ARRAY_BEFORE_COMMA,Sep$1.ARRAY_AFTER_COMMA),r.length>0&&r[r.length-1]==null&&(i=seq(i,this.sep(Sep$1.ARRAY_BEFORE_COMMA),this.t(","),this.sep(Sep$1.ARRAY_AFTER_COMMA)))),this.bracket(i,Sep$1.ARRAY_INITIAL,Sep$1.ARRAY_FINAL,Sep$1.ARRAY_EMPTY)}reduceObjectAssignmentTarget(e,{properties:r,rest:u}){let i;r.length===0?i=u==null?empty():seq(this.t("..."),this.sep(Sep$1.REST),u):(i=this.commaSep(r,Sep$1.OBJECT_BEFORE_COMMA,Sep$1.OBJECT_AFTER_COMMA),i=u==null?i:this.commaSep([i,seq(this.t("..."),this.sep(Sep$1.REST),u)],Sep$1.OBJECT_BEFORE_COMMA,Sep$1.OBJECT_AFTER_COMMA));let n=this.brace(i,e,Sep$1.OBJECT_BRACE_INITIAL,Sep$1.OBJECT_BRACE_FINAL,Sep$1.OBJECT_EMPTY);return n.startsWithCurly=!0,n}reduceObjectBinding(e,{properties:r,rest:u}){let i;r.length===0?i=u==null?empty():seq(this.t("..."),this.sep(Sep$1.REST),u):(i=this.commaSep(r,Sep$1.OBJECT_BEFORE_COMMA,Sep$1.OBJECT_AFTER_COMMA),i=u==null?i:this.commaSep([i,seq(this.t("..."),this.sep(Sep$1.REST),u)],Sep$1.OBJECT_BEFORE_COMMA,Sep$1.OBJECT_AFTER_COMMA));let n=this.brace(i,e,Sep$1.OBJECT_BRACE_INITIAL,Sep$1.OBJECT_BRACE_FINAL,Sep$1.OBJECT_EMPTY);return n.startsWithCurly=!0,n}reduceAssignmentTargetPropertyIdentifier(e,{binding:r,init:u}){return e.init==null?r:seq(r,this.sep(Sep$1.BEFORE_DEFAULT_EQUALS),this.t("="),this.sep(Sep$1.AFTER_DEFAULT_EQUALS),this.p(e.init,Precedence$1.Assignment,u))}reduceAssignmentTargetPropertyProperty(e,{name:r,binding:u}){return seq(r,this.sep(Sep$1.BEFORE_PROP),this.t(":"),this.sep(Sep$1.AFTER_PROP),u)}reduceBindingPropertyIdentifier(e,{binding:r,init:u}){return e.init==null?r:seq(r,this.sep(Sep$1.BEFORE_DEFAULT_EQUALS),this.t("="),this.sep(Sep$1.AFTER_DEFAULT_EQUALS),this.p(e.init,Precedence$1.Assignment,u))}reduceBindingPropertyProperty(e,{name:r,binding:u}){return seq(r,this.sep(Sep$1.BEFORE_PROP),this.t(":"),this.sep(Sep$1.AFTER_PROP),u)}reduceBlock(e,{statements:r}){return this.brace(seq(...r),e,Sep$1.BLOCK_BRACE_INITIAL,Sep$1.BLOCK_BRACE_FINAL,Sep$1.BLOCK_EMPTY)}reduceBlockStatement(e,{block:r}){return seq(r,this.sep(Sep$1.AFTER_STATEMENT(e)))}reduceBreakStatement(e){return seq(this.t("break"),e.label?seq(this.sep(Sep$1.BEFORE_JUMP_LABEL),this.t(e.label)):empty(),this.semiOp(),this.sep(Sep$1.AFTER_STATEMENT(e)))}reduceCallExpression(e,{callee:r,arguments:u}){const i=u.map((n,a)=>this.p(e.arguments[a],Precedence$1.Assignment,n));return objectAssign(seq(this.p(e.callee,getPrecedence$1(e),r),this.sep(Sep$1.CALL),this.paren(this.commaSep(i,Sep$1.ARGS_BEFORE_COMMA,Sep$1.ARGS_AFTER_COMMA),Sep$1.CALL_PAREN_BEFORE,Sep$1.CALL_PAREN_AFTER,Sep$1.CALL_PAREN_EMPTY)),{startsWithCurly:r.startsWithCurly,startsWithLet:r.startsWithLet,startsWithLetSquareBracket:r.startsWithLetSquareBracket,startsWithFunctionOrClass:r.startsWithFunctionOrClass})}reduceCatchClause(e,{binding:r,body:u}){return r==null?seq(this.t("catch"),this.sep(Sep$1.BEFORE_CATCH_BINDING),u):seq(this.t("catch"),this.sep(Sep$1.BEFORE_CATCH_BINDING),this.paren(r,Sep$1.CATCH_PAREN_BEFORE,Sep$1.CATCH_PAREN_AFTER),this.sep(Sep$1.AFTER_CATCH_BINDING),u)}reduceClassDeclaration(e,{name:r,super:u,elements:i}){let n=seq(this.t("class"),e.name.name==="*default*"?empty():seq(this.sep(Sep$1.BEFORE_CLASS_NAME),r));return u!=null&&(n=seq(n,this.sep(Sep$1.BEFORE_EXTENDS),this.t("extends"),this.sep(Sep$1.AFTER_EXTENDS),this.p(e.super,Precedence$1.New,u))),n=seq(n,this.sep(Sep$1.BEFORE_CLASS_DECLARATION_ELEMENTS),this.brace(seq(...i),e,Sep$1.CLASS_BRACE_INITIAL,Sep$1.CLASS_BRACE_FINAL,Sep$1.CLASS_EMPTY),this.sep(Sep$1.AFTER_STATEMENT(e))),n}reduceClassExpression(e,{name:r,super:u,elements:i}){let n=this.t("class");return r!=null&&(n=seq(n,this.sep(Sep$1.BEFORE_CLASS_NAME),r)),u!=null&&(n=seq(n,this.sep(Sep$1.BEFORE_EXTENDS),this.t("extends"),this.sep(Sep$1.AFTER_EXTENDS),this.p(e.super,Precedence$1.New,u))),n=seq(n,this.sep(Sep$1.BEFORE_CLASS_EXPRESSION_ELEMENTS),this.brace(seq(...i),e,Sep$1.CLASS_EXPRESSION_BRACE_INITIAL,Sep$1.CLASS_EXPRESSION_BRACE_FINAL,Sep$1.CLASS_EXPRESSION_BRACE_EMPTY)),n.startsWithFunctionOrClass=!0,n}reduceClassElement(e,{method:r}){return r=seq(this.sep(Sep$1.BEFORE_CLASS_ELEMENT),r,this.sep(Sep$1.AFTER_CLASS_ELEMENT)),e.isStatic?seq(this.t("static"),this.sep(Sep$1.AFTER_STATIC),r):r}reduceComputedMemberAssignmentTarget(e,{object:r,expression:u}){let i=r.startsWithLetSquareBracket||e.object.type==="IdentifierExpression"&&e.object.name==="let";return objectAssign(seq(this.p(e.object,getPrecedence$1(e),r),this.sep(Sep$1.COMPUTED_MEMBER_ASSIGNMENT_TARGET),this.bracket(u,Sep$1.COMPUTED_MEMBER_ASSIGNMENT_TARGET_BRACKET_INTIAL,Sep$1.COMPUTED_MEMBER_ASSIGNMENT_TARGET_BRACKET_FINAL)),{startsWithLet:r.startsWithLet,startsWithLetSquareBracket:i,startsWithCurly:r.startsWithCurly,startsWithFunctionOrClass:r.startsWithFunctionOrClass})}reduceComputedMemberExpression(e,{object:r,expression:u}){let i=r.startsWithLetSquareBracket||e.object.type==="IdentifierExpression"&&e.object.name==="let";return objectAssign(seq(this.p(e.object,getPrecedence$1(e),r),this.sep(Sep$1.COMPUTED_MEMBER_EXPRESSION),this.bracket(u,Sep$1.COMPUTED_MEMBER_BRACKET_INTIAL,Sep$1.COMPUTED_MEMBER_BRACKET_FINAL)),{startsWithLet:r.startsWithLet,startsWithLetSquareBracket:i,startsWithCurly:r.startsWithCurly,startsWithFunctionOrClass:r.startsWithFunctionOrClass})}reduceComputedPropertyName(e,{expression:r}){return this.bracket(this.p(e.expression,Precedence$1.Assignment,r),Sep$1.COMPUTED_PROPERTY_BRACKET_INTIAL,Sep$1.COMPUTED_PROPERTY_BRACKET_FINAL)}reduceConditionalExpression(e,{test:r,consequent:u,alternate:i}){let n=r.containsIn||i.containsIn,a=r.startsWithCurly,l=r.startsWithLetSquareBracket,o=r.startsWithFunctionOrClass;return objectAssign(seq(this.p(e.test,Precedence$1.LogicalOR,r),this.sep(Sep$1.BEFORE_TERNARY_QUESTION),this.t("?"),this.sep(Sep$1.AFTER_TERNARY_QUESTION),this.p(e.consequent,Precedence$1.Assignment,u),this.sep(Sep$1.BEFORE_TERNARY_COLON),this.t(":"),this.sep(Sep$1.AFTER_TERNARY_COLON),this.p(e.alternate,Precedence$1.Assignment,i)),{containsIn:n,startsWithCurly:a,startsWithLetSquareBracket:l,startsWithFunctionOrClass:o})}reduceContinueStatement(e){return seq(this.t("continue"),e.label?seq(this.sep(Sep$1.BEFORE_JUMP_LABEL),this.t(e.label)):empty(),this.semiOp(),this.sep(Sep$1.AFTER_STATEMENT(e)))}reduceDataProperty(e,{name:r,expression:u}){return seq(r,this.sep(Sep$1.BEFORE_PROP),this.t(":"),this.sep(Sep$1.AFTER_PROP),this.getAssignmentExpr(u))}reduceDebuggerStatement(e){return seq(this.t("debugger"),this.semiOp(),this.sep(Sep$1.AFTER_STATEMENT(e)))}reduceDoWhileStatement(e,{body:r,test:u}){return seq(this.t("do"),this.sep(Sep$1.AFTER_DO),r,this.sep(Sep$1.BEFORE_DOWHILE_WHILE),this.t("while"),this.sep(Sep$1.AFTER_DOWHILE_WHILE),this.paren(u,Sep$1.DO_WHILE_TEST_PAREN_BEFORE,Sep$1.DO_WHILE_TEST_PAREN_AFTER),this.semiOp(),this.sep(Sep$1.AFTER_STATEMENT(e)))}reduceEmptyStatement(e){return seq(this.t(";"),this.sep(Sep$1.AFTER_STATEMENT(e)))}reduceExpressionStatement(e,{expression:r}){let u=r.startsWithCurly||r.startsWithLetSquareBracket||r.startsWithFunctionOrClass;return seq(u?this.paren(r,Sep$1.EXPRESSION_STATEMENT_PAREN_BEFORE,Sep$1.EXPRESSION_STATEMENT_PAREN_AFTER):r,this.semiOp(),this.sep(Sep$1.AFTER_STATEMENT(e)))}reduceForInStatement(e,{left:r,right:u,body:i}){return r=e.left.type==="VariableDeclaration"?noIn(markContainsIn(r)):r,objectAssign(seq(this.t("for"),this.sep(Sep$1.AFTER_FORIN_FOR),this.paren(seq(r.startsWithLet?this.paren(r,Sep$1.FOR_IN_LET_PAREN_BEFORE,Sep$1.FOR_IN_LET_PAREN_AFTER):r,this.sep(Sep$1.BEFORE_FORIN_IN),this.t("in"),this.sep(Sep$1.AFTER_FORIN_FOR),u),Sep$1.FOR_IN_PAREN_BEFORE,Sep$1.FOR_IN_PAREN_AFTER),this.sep(Sep$1.BEFORE_FORIN_BODY),i,this.sep(Sep$1.AFTER_STATEMENT(e))),{endsWithMissingElse:i.endsWithMissingElse})}reduceForOfStatement(e,{left:r,right:u,body:i}){return r=e.left.type==="VariableDeclaration"?noIn(markContainsIn(r)):r,objectAssign(seq(this.t("for"),this.sep(Sep$1.AFTER_FOROF_FOR),this.paren(seq(r.startsWithLet?this.paren(r,Sep$1.FOR_OF_LET_PAREN_BEFORE,Sep$1.FOR_OF_LET_PAREN_AFTER):r,this.sep(Sep$1.BEFORE_FOROF_OF),this.t("of"),this.sep(Sep$1.AFTER_FOROF_FOR),this.p(e.right,Precedence$1.Assignment,u)),Sep$1.FOR_OF_PAREN_BEFORE,Sep$1.FOR_OF_PAREN_AFTER),this.sep(Sep$1.BEFORE_FOROF_BODY),i,this.sep(Sep$1.AFTER_STATEMENT(e))),{endsWithMissingElse:i.endsWithMissingElse})}reduceForStatement(e,{init:r,test:u,update:i,body:n}){return r&&(r.startsWithLetSquareBracket&&(r=this.paren(r,Sep$1.FOR_LET_PAREN_BEFORE,Sep$1.FOR_LET_PAREN_AFTER)),r=noIn(markContainsIn(r))),objectAssign(seq(this.t("for"),this.sep(Sep$1.AFTER_FOR_FOR),this.paren(seq(r?seq(this.sep(Sep$1.BEFORE_FOR_INIT),r,this.sep(Sep$1.AFTER_FOR_INIT)):this.sep(Sep$1.EMPTY_FOR_INIT),this.t(";"),u?seq(this.sep(Sep$1.BEFORE_FOR_TEST),u,this.sep(Sep$1.AFTER_FOR_TEST)):this.sep(Sep$1.EMPTY_FOR_TEST),this.t(";"),i?seq(this.sep(Sep$1.BEFORE_FOR_UPDATE),i,this.sep(Sep$1.AFTER_FOR_UPDATE)):this.sep(Sep$1.EMPTY_FOR_UPDATE))),this.sep(Sep$1.BEFORE_FOR_BODY),n,this.sep(Sep$1.AFTER_STATEMENT(e))),{endsWithMissingElse:n.endsWithMissingElse})}reduceForAwaitStatement(e,{left:r,right:u,body:i}){return r=e.left.type==="VariableDeclaration"?noIn(markContainsIn(r)):r,objectAssign(seq(this.t("for"),this.sep(Sep$1.AFTER_FOROF_FOR),this.t("await"),this.sep(Sep$1.AFTER_FORAWAIT_AWAIT),this.paren(seq(r.startsWithLet?this.paren(r,Sep$1.FOR_OF_LET_PAREN_BEFORE,Sep$1.FOR_OF_LET_PAREN_AFTER):r,this.sep(Sep$1.BEFORE_FOROF_OF),this.t("of"),this.sep(Sep$1.AFTER_FOROF_FOR),this.p(e.right,Precedence$1.Assignment,u)),Sep$1.FOR_OF_PAREN_BEFORE,Sep$1.FOR_OF_PAREN_AFTER),this.sep(Sep$1.BEFORE_FOROF_BODY),i,this.sep(Sep$1.AFTER_STATEMENT(e))),{endsWithMissingElse:i.endsWithMissingElse})}reduceFunctionBody(e,{directives:r,statements:u}){return u.length&&(u[0]=this.parenToAvoidBeingDirective(e.statements[0],u[0])),seq(...r,r.length?this.sep(Sep$1.AFTER_FUNCTION_DIRECTIVES):empty(),...u)}reduceFunctionDeclaration(e,{name:r,params:u,body:i}){return seq(e.isAsync?this.t("async"):empty(),this.t("function"),e.isGenerator?seq(this.sep(Sep$1.BEFORE_GENERATOR_STAR),this.t("*"),this.sep(Sep$1.AFTER_GENERATOR_STAR)):empty(),this.sep(Sep$1.BEFORE_FUNCTION_NAME(e)),e.name.name==="*default*"?empty():r,this.sep(Sep$1.BEFORE_FUNCTION_PARAMS),this.paren(u,Sep$1.PARAMETERS_PAREN_BEFORE,Sep$1.PARAMETERS_PAREN_AFTER,Sep$1.PARAMETERS_PAREN_EMPTY),this.sep(Sep$1.BEFORE_FUNCTION_DECLARATION_BODY),this.brace(i,e,Sep$1.FUNCTION_BRACE_INITIAL,Sep$1.FUNCTION_BRACE_FINAL,Sep$1.FUNCTION_EMPTY),this.sep(Sep$1.AFTER_STATEMENT(e)))}reduceFunctionExpression(e,{name:r,params:u,body:i}){let n=seq(e.isAsync?this.t("async"):empty(),this.t("function"),e.isGenerator?seq(this.sep(Sep$1.BEFORE_GENERATOR_STAR),this.t("*"),this.sep(Sep$1.AFTER_GENERATOR_STAR)):empty(),this.sep(Sep$1.BEFORE_FUNCTION_NAME(e)),r||empty(),this.sep(Sep$1.BEFORE_FUNCTION_PARAMS),this.paren(u,Sep$1.PARAMETERS_PAREN_BEFORE,Sep$1.PARAMETERS_PAREN_AFTER,Sep$1.PARAMETERS_PAREN_EMPTY),this.sep(Sep$1.BEFORE_FUNCTION_EXPRESSION_BODY),this.brace(i,e,Sep$1.FUNCTION_EXPRESSION_BRACE_INITIAL,Sep$1.FUNCTION_EXPRESSION_BRACE_FINAL,Sep$1.FUNCTION_EXPRESSION_EMPTY));return n.startsWithFunctionOrClass=!0,n}reduceFormalParameters(e,{items:r,rest:u}){return this.commaSep(r.concat(u==null?[]:[seq(this.t("..."),this.sep(Sep$1.REST),u)]),Sep$1.PARAMETER_BEFORE_COMMA,Sep$1.PARAMETER_AFTER_COMMA)}reduceArrowExpression(e,{params:r,body:u}){(e.params.rest!=null||e.params.items.length!==1||e.params.items[0].type!=="BindingIdentifier")&&(r=this.paren(r,Sep$1.ARROW_PARAMETERS_PAREN_BEFORE,Sep$1.ARROW_PARAMETERS_PAREN_AFTER,Sep$1.ARROW_PARAMETERS_PAREN_EMPTY));let i=!1;return e.body.type==="FunctionBody"?u=this.brace(u,e,Sep$1.ARROW_BRACE_INITIAL,Sep$1.ARROW_BRACE_FINAL,Sep$1.ARROW_BRACE_EMPTY):u.startsWithCurly?u=this.paren(u,Sep$1.ARROW_BODY_PAREN_BEFORE,Sep$1.ARROW_BODY_PAREN_AFTER):u.containsIn&&(i=!0),objectAssign(seq(e.isAsync?seq(this.t("async"),this.sep(Sep$1.BEFORE_ARROW_ASYNC_PARAMS)):empty(),r,this.sep(Sep$1.BEFORE_ARROW),this.t("=>"),this.sep(Sep$1.AFTER_ARROW),this.p(e.body,Precedence$1.Assignment,u)),{containsIn:i})}reduceGetter(e,{name:r,body:u}){return seq(this.t("get"),this.sep(Sep$1.AFTER_GET),r,this.sep(Sep$1.BEFORE_GET_PARAMS),this.paren(empty(),null,null,Sep$1.GETTER_PARAMS),this.sep(Sep$1.BEFORE_GET_BODY),this.brace(u,e,Sep$1.GET_BRACE_INTIAL,Sep$1.GET_BRACE_FINAL,Sep$1.GET_BRACE_EMPTY))}reduceIdentifierExpression(e){let r=this.t(e.name);return e.name==="let"&&(r.startsWithLet=!0),r}reduceIfStatement(e,{test:r,consequent:u,alternate:i}){return i&&u.endsWithMissingElse&&(u=this.brace(u,e,Sep$1.MISSING_ELSE_INTIIAL,Sep$1.MISSING_ELSE_FINAL,Sep$1.MISSING_ELSE_EMPTY)),objectAssign(seq(this.t("if"),this.sep(Sep$1.AFTER_IF),this.paren(r,Sep$1.IF_PAREN_BEFORE,Sep$1.IF_PAREN_AFTER),this.sep(Sep$1.AFTER_IF_TEST),u,i?seq(this.sep(Sep$1.BEFORE_ELSE),this.t("else"),this.sep(Sep$1.AFTER_ELSE),i):empty(),this.sep(Sep$1.AFTER_STATEMENT(e))),{endsWithMissingElse:i?i.endsWithMissingElse:!0})}reduceImport(e,{defaultBinding:r,namedImports:u}){let i=[];return r!=null&&i.push(r),u.length>0&&i.push(this.brace(this.commaSep(u,Sep$1.NAMED_IMPORT_BEFORE_COMMA,Sep$1.NAMED_IMPORT_AFTER_COMMA),e,Sep$1.IMPORT_BRACE_INTIAL,Sep$1.IMPORT_BRACE_FINAL,Sep$1.IMPORT_BRACE_EMPTY)),i.length===0?seq(this.t("import"),this.sep(Sep$1.BEFORE_IMPORT_MODULE),this.t(escapeStringLiteral$1(e.moduleSpecifier)),this.semiOp(),this.sep(Sep$1.AFTER_STATEMENT(e))):seq(this.t("import"),this.sep(Sep$1.BEFORE_IMPORT_BINDINGS),this.commaSep(i,Sep$1.IMPORT_BEFORE_COMMA,Sep$1.IMPORT_AFTER_COMMA),this.sep(Sep$1.AFTER_IMPORT_BINDINGS),this.t("from"),this.sep(Sep$1.AFTER_FROM),this.t(escapeStringLiteral$1(e.moduleSpecifier)),this.semiOp(),this.sep(Sep$1.AFTER_STATEMENT(e)))}reduceImportNamespace(e,{defaultBinding:r,namespaceBinding:u}){return seq(this.t("import"),this.sep(Sep$1.BEFORE_IMPORT_NAMESPACE),r==null?empty():seq(r,this.sep(Sep$1.IMPORT_BEFORE_COMMA),this.t(","),this.sep(Sep$1.IMPORT_AFTER_COMMA)),this.sep(Sep$1.BEFORE_IMPORT_STAR),this.t("*"),this.sep(Sep$1.AFTER_IMPORT_STAR),this.t("as"),this.sep(Sep$1.AFTER_IMPORT_AS),u,this.sep(Sep$1.AFTER_NAMESPACE_BINDING),this.t("from"),this.sep(Sep$1.AFTER_FROM),this.t(escapeStringLiteral$1(e.moduleSpecifier)),this.semiOp(),this.sep(Sep$1.AFTER_STATEMENT(e)))}reduceImportSpecifier(e,{binding:r}){return e.name==null?r:seq(this.t(e.name),this.sep(Sep$1.BEFORE_IMPORT_AS),this.t("as"),this.sep(Sep$1.AFTER_IMPORT_AS),r)}reduceExportAllFrom(e){return seq(this.t("export"),this.sep(Sep$1.BEFORE_EXPORT_STAR),this.t("*"),this.sep(Sep$1.AFTER_EXPORT_STAR),this.t("from"),this.sep(Sep$1.AFTER_FROM),this.t(escapeStringLiteral$1(e.moduleSpecifier)),this.semiOp(),this.sep(Sep$1.AFTER_STATEMENT(e)))}reduceExportFrom(e,{namedExports:r}){return seq(this.t("export"),this.sep(Sep$1.BEFORE_EXPORT_BINDINGS),this.brace(this.commaSep(r,Sep$1.EXPORTS_BEFORE_COMMA,Sep$1.EXPORTS_AFTER_COMMA),e,Sep$1.EXPORT_BRACE_INITIAL,Sep$1.EXPORT_BRACE_FINAL,Sep$1.EXPORT_BRACE_EMPTY),this.sep(Sep$1.AFTER_EXPORT_FROM_BINDINGS),this.t("from"),this.sep(Sep$1.AFTER_FROM),this.t(escapeStringLiteral$1(e.moduleSpecifier)),this.semiOp(),this.sep(Sep$1.AFTER_STATEMENT(e)))}reduceExportLocals(e,{namedExports:r}){return seq(this.t("export"),this.sep(Sep$1.BEFORE_EXPORT_BINDINGS),this.brace(this.commaSep(r,Sep$1.EXPORTS_BEFORE_COMMA,Sep$1.EXPORTS_AFTER_COMMA),e,Sep$1.EXPORT_BRACE_INITIAL,Sep$1.EXPORT_BRACE_FINAL,Sep$1.EXPORT_BRACE_EMPTY),this.sep(Sep$1.AFTER_EXPORT_LOCAL_BINDINGS),this.semiOp(),this.sep(Sep$1.AFTER_STATEMENT(e)))}reduceExport(e,{declaration:r}){switch(e.declaration.type){case"FunctionDeclaration":case"ClassDeclaration":break;default:r=seq(r,this.semiOp(),this.sep(Sep$1.AFTER_STATEMENT(e)))}return seq(this.t("export"),this.sep(Sep$1.AFTER_EXPORT),r)}reduceExportDefault(e,{body:r}){switch(r=r.startsWithFunctionOrClass?this.paren(r,Sep$1.EXPORT_PAREN_BEFORE,Sep$1.EXPORT_PAREN_AFTER):r,e.body.type){case"FunctionDeclaration":case"ClassDeclaration":return seq(this.t("export"),this.sep(Sep$1.EXPORT_DEFAULT),this.t("default"),this.sep(Sep$1.AFTER_EXPORT_DEFAULT),r);default:return seq(this.t("export"),this.sep(Sep$1.EXPORT_DEFAULT),this.t("default"),this.sep(Sep$1.AFTER_EXPORT_DEFAULT),this.p(e.body,Precedence$1.Assignment,r),this.semiOp(),this.sep(Sep$1.AFTER_STATEMENT(e)))}}reduceExportFromSpecifier(e){return e.exportedName==null?this.t(e.name):seq(this.t(e.name),this.sep(Sep$1.BEFORE_EXPORT_AS),this.t("as"),this.sep(Sep$1.AFTER_EXPORT_AS),this.t(e.exportedName))}reduceExportLocalSpecifier(e,{name:r}){return e.exportedName==null?r:seq(r,this.sep(Sep$1.BEFORE_EXPORT_AS),this.t("as"),this.sep(Sep$1.AFTER_EXPORT_AS),this.t(e.exportedName))}reduceLabeledStatement(e,{body:r}){return objectAssign(seq(this.t(e.label),this.sep(Sep$1.BEFORE_LABEL_COLON),this.t(":"),this.sep(Sep$1.AFTER_LABEL_COLON),r),{endsWithMissingElse:r.endsWithMissingElse})}reduceLiteralBooleanExpression(e){return this.t(e.value.toString())}reduceLiteralNullExpression(){return this.t("null")}reduceLiteralInfinityExpression(){return this.t("2e308")}reduceLiteralNumericExpression(e){return new NumberCodeRep$1(e.value)}reduceLiteralRegExpExpression(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)}reduceLiteralStringExpression(e){return this.t(escapeStringLiteral$1(e.value))}reduceMethod(e,{name:r,params:u,body:i}){return seq(e.isAsync?seq(this.t("async"),this.sep(Sep$1.AFTER_METHOD_ASYNC)):empty(),e.isGenerator?seq(this.t("*"),this.sep(Sep$1.AFTER_METHOD_GENERATOR_STAR)):empty(),r,this.sep(Sep$1.AFTER_METHOD_NAME),this.paren(u,Sep$1.PARAMETERS_PAREN_BEFORE,Sep$1.PARAMETERS_PAREN_AFTER,Sep$1.PARAMETERS_PAREN_EMPTY),this.sep(Sep$1.BEFORE_METHOD_BODY),this.brace(i,e,Sep$1.METHOD_BRACE_INTIAL,Sep$1.METHOD_BRACE_FINAL,Sep$1.METHOD_BRACE_EMPTY))}reduceModule(e,{directives:r,items:u}){return u.length&&(u[0]=this.parenToAvoidBeingDirective(e.items[0],u[0])),seq(...r,r.length?this.sep(Sep$1.AFTER_MODULE_DIRECTIVES):empty(),...u)}reduceNewExpression(e,{callee:r,arguments:u}){const i=u.map((a,l)=>this.p(e.arguments[l],Precedence$1.Assignment,a));let n=getPrecedence$1(e.callee)===Precedence$1.Call?this.paren(r,Sep$1.NEW_CALLEE_PAREN_BEFORE,Sep$1.NEW_CALLEE_PAREN_AFTER):this.p(e.callee,getPrecedence$1(e),r);return seq(this.t("new"),this.sep(Sep$1.AFTER_NEW),n,u.length===0?this.sep(Sep$1.EMPTY_NEW_CALL):seq(this.sep(Sep$1.BEFORE_NEW_ARGS),this.paren(this.commaSep(i,Sep$1.ARGS_BEFORE_COMMA,Sep$1.ARGS_AFTER_COMMA),Sep$1.NEW_PAREN_BEFORE,Sep$1.NEW_PAREN_AFTER,Sep$1.NEW_PAREN_EMPTY)))}reduceNewTargetExpression(){return seq(this.t("new"),this.sep(Sep$1.NEW_TARGET_BEFORE_DOT),this.t("."),this.sep(Sep$1.NEW_TARGET_AFTER_DOT),this.t("target"))}reduceObjectExpression(e,{properties:r}){let u=this.brace(this.commaSep(r,Sep$1.OBJECT_BEFORE_COMMA,Sep$1.OBJECT_AFTER_COMMA),e,Sep$1.OBJECT_BRACE_INITIAL,Sep$1.OBJECT_BRACE_FINAL,Sep$1.OBJECT_EMPTY);return u.startsWithCurly=!0,u}reduceUpdateExpression(e,{operand:r}){return e.isPrefix?this.reduceUnaryExpression(...arguments):objectAssign(seq(this.p(e.operand,Precedence$1.New,r),this.sep(Sep$1.BEFORE_POSTFIX(e.operator)),this.t(e.operator)),{startsWithCurly:r.startsWithCurly,startsWithLetSquareBracket:r.startsWithLetSquareBracket,startsWithFunctionOrClass:r.startsWithFunctionOrClass})}reduceUnaryExpression(e,{operand:r}){return seq(this.t(e.operator),this.sep(Sep$1.UNARY(e.operator)),this.p(e.operand,getPrecedence$1(e),r))}reduceReturnStatement(e,{expression:r}){return seq(this.t("return"),r?seq(this.sep(Sep$1.RETURN),r):empty(),this.semiOp(),this.sep(Sep$1.AFTER_STATEMENT(e)))}reduceScript(e,{directives:r,statements:u}){return u.length&&(u[0]=this.parenToAvoidBeingDirective(e.statements[0],u[0])),seq(...r,r.length?this.sep(Sep$1.AFTER_SCRIPT_DIRECTIVES):empty(),...u)}reduceSetter(e,{name:r,param:u,body:i}){return seq(this.t("set"),this.sep(Sep$1.AFTER_SET),r,this.sep(Sep$1.BEFORE_SET_PARAMS),this.paren(u,Sep$1.SETTER_PARAM_BEFORE,Sep$1.SETTER_PARAM_AFTER),this.sep(Sep$1.BEFORE_SET_BODY),this.brace(i,e,Sep$1.SET_BRACE_INTIIAL,Sep$1.SET_BRACE_FINAL,Sep$1.SET_BRACE_EMPTY))}reduceShorthandProperty(e,{name:r}){return r}reduceStaticMemberAssignmentTarget(e,{object:r}){const u=seq(this.p(e.object,getPrecedence$1(e),r),this.sep(Sep$1.BEFORE_STATIC_MEMBER_ASSIGNMENT_TARGET_DOT),this.t("."),this.sep(Sep$1.AFTER_STATIC_MEMBER_ASSIGNMENT_TARGET_DOT),this.t(e.property));return u.startsWithLet=r.startsWithLet,u.startsWithCurly=r.startsWithCurly,u.startsWithLetSquareBracket=r.startsWithLetSquareBracket,u.startsWithFunctionOrClass=r.startsWithFunctionOrClass,u}reduceStaticMemberExpression(e,{object:r}){const u=seq(this.p(e.object,getPrecedence$1(e),r),this.sep(Sep$1.BEFORE_STATIC_MEMBER_DOT),this.t("."),this.sep(Sep$1.AFTER_STATIC_MEMBER_DOT),this.t(e.property));return u.startsWithLet=r.startsWithLet,u.startsWithCurly=r.startsWithCurly,u.startsWithLetSquareBracket=r.startsWithLetSquareBracket,u.startsWithFunctionOrClass=r.startsWithFunctionOrClass,u}reduceStaticPropertyName(e){if(keyword.isIdentifierNameES6(e.value))return this.t(e.value);let r=parseFloat(e.value);return r>=0&&r.toString()===e.value?new NumberCodeRep$1(r):this.t(escapeStringLiteral$1(e.value))}reduceSuper(){return this.t("super")}reduceSwitchCase(e,{test:r,consequent:u}){return seq(this.t("case"),this.sep(Sep$1.BEFORE_CASE_TEST),r,this.sep(Sep$1.AFTER_CASE_TEST),this.t(":"),this.sep(Sep$1.BEFORE_CASE_BODY),seq(...u),this.sep(Sep$1.AFTER_CASE_BODY))}reduceSwitchDefault(e,{consequent:r}){return seq(this.t("default"),this.sep(Sep$1.DEFAULT),this.t(":"),this.sep(Sep$1.BEFORE_CASE_BODY),seq(...r),this.sep(Sep$1.AFTER_DEFAULT_BODY))}reduceSwitchStatement(e,{discriminant:r,cases:u}){return seq(this.t("switch"),this.sep(Sep$1.BEFORE_SWITCH_DISCRIM),this.paren(r,Sep$1.SWITCH_DISCRIM_PAREN_BEFORE,Sep$1.SWITCH_DISCRIM_PAREN_AFTER),this.sep(Sep$1.BEFORE_SWITCH_BODY),this.brace(seq(...u),e,Sep$1.SWITCH_BRACE_INTIAL,Sep$1.SWITCH_BRACE_FINAL,Sep$1.SWITCH_BRACE_EMPTY),this.sep(Sep$1.AFTER_STATEMENT(e)))}reduceSwitchStatementWithDefault(e,{discriminant:r,preDefaultCases:u,defaultCase:i,postDefaultCases:n}){return seq(this.t("switch"),this.sep(Sep$1.BEFORE_SWITCH_DISCRIM),this.paren(r,Sep$1.SWITCH_DISCRIM_PAREN_BEFORE,Sep$1.SWITCH_DISCRIM_PAREN_AFTER),this.sep(Sep$1.BEFORE_SWITCH_BODY),this.brace(seq(...u,i,...n),e,Sep$1.SWITCH_BRACE_INTIAL,Sep$1.SWITCH_BRACE_FINAL,Sep$1.SWITCH_BRACE_EMPTY),this.sep(Sep$1.AFTER_STATEMENT(e)))}reduceTemplateExpression(e,{tag:r,elements:u}){let i=e.tag==null?empty():seq(this.p(e.tag,getPrecedence$1(e),r),this.sep(Sep$1.TEMPLATE_TAG));i=seq(i,this.t("`"));for(let n=0,a=e.elements.length;n0&&(l+="}"),l+=e.elements[n].rawValue,n{u.locations.set(e,{start:{line:1,column:0,offset:0},end:null}),r(u,...i),u.locations.get(e).end={line:u.line,column:u.column,offset:u.result.length}}:e.type==="LiteralNumericExpression"?s.emit=(u,...i)=>{u.startEmit(e),r(u,...i),u.finishEmit(e),u.lastNumberNode=e}:s.emit=(u,...i)=>{u.startEmit(e),r(u,...i),u.finishEmit(e)},s}function addLocationToReducer(s){const e=adapt(addLocation,s),r=e.regenerateArrowParams.bind(e);e.regenerateArrowParams=function(i,n){const a=r(i,n);return a!==n&&addLocation(a,i),a};const u=e.parenToAvoidBeingDirective.bind(e);return e.parenToAvoidBeingDirective=function(i,n){const a=u(i,n);return a!==n&&addLocation(a,i),a},e}function codeGenWithLocation$1(s,e=new MinimalCodeGen$1){let r=new TokenStreamWithLocation;return reduce$1(addLocationToReducer(e),s).emit(r),{source:r.result,locations:r.locations}}var withLocation=codeGenWithLocation$1;const reduce=src$2.default,{TokenStream}=tokenStream,MinimalCodeGen=minimalCodegen;function codeGen(s,e=new MinimalCodeGen){let r=new TokenStream;return reduce(e,s).emit(r),r.result}const{ExtensibleCodeGen,FormattedCodeGen,Sep}=formattedCodegen,{Precedence,getPrecedence,escapeStringLiteral,CodeRep,Empty,Token,NumberCodeRep,Paren,Bracket,Brace,NoIn,ContainsIn,Seq,Semi,CommaSep,SemiOp}=coderep,codeGenWithLocation=withLocation;var src={default:codeGen,codeGen,MinimalCodeGen,ExtensibleCodeGen,FormattedCodeGen,Sep,Precedence,getPrecedence,escapeStringLiteral,CodeRep,Empty,Token,NumberCodeRep,Paren,Bracket,Brace,NoIn,ContainsIn,Seq,Semi,CommaSep,SemiOp,codeGenWithLocation};const{replace}=estraverse,codegen=src.default||src,{Pattern}=strudel,isNote=s=>/^[a-gC-G][bs]?[0-9]$/.test(s),shapeshifter=s=>{const{code:e,addReturn:r}=wrapAsync(s),u=src$1.parseScriptWithLocation(disguiseImports(e)),i=[],n=[],a=replace(u.tree,{enter(o,c){var f,E,D;if(n.push(c),n.some(h=>i.includes(h)))return o;if(isBackTickString(o))return minifyWithLocation(o,o,u.locations,i);if(((f=o.directives)==null?void 0:f.length)===1&&!((E=o.statements)!=null&&E.length)){const h=new LiteralStringExpression({value:o.directives[0].rawValue}),y=minifyWithLocation(h,o.directives[0],u.locations,i);return{...o,directives:[],statements:[y]}}if(isStringWithDoubleQuotes(o,u.locations,e))return minifyWithLocation(o,o,u.locations,i);const d={"*":"fast","/":"slow","&":"stack","&&":"append"};if(o.type==="BinaryExpression"&&d[o.operator]&&["LiteralNumericExpression","LiteralStringExpression","IdentifierExpression"].includes((D=o.right)==null?void 0:D.type)&&canBeOverloaded(o.left)){let h=o.left;return o.left.type==="IdentifierExpression"&&(h=wrapFunction("reify",o.left)),new CallExpression({callee:new StaticMemberExpression({property:d[o.operator],object:wrapFunction("reify",h)}),arguments:[o.right]})}const m=isPatternArg(n)||hasModifierCall(c);if(o.type==="CallExpression"&&o.callee.name==="pure"){const h=o.arguments[0];return reifyWithLocation(h,o.arguments[0],u.locations,i)}if(o.type==="IdentifierExpression"){if(isNote(o.name)){const h=o.name[1]==="s"?o.name.replace("s","#"):o.name;return m?reifyWithLocation(new LiteralStringExpression({value:h}),o,u.locations,i):new LiteralStringExpression({value:h})}if(o.name==="r")return new IdentifierExpression({name:"silence"})}return["LiteralStringExpression"].includes(o.type)&&m?reifyWithLocation(o,o,u.locations,i):addMiniNotationLocations(o,u.locations,i)},leave(){n.pop()}});return r(a),undisguiseImports(codegen(a))};function disguiseImports(s){return s.replaceAll("import","_mport")}function undisguiseImports(s){return s.replaceAll("_mport","import")}function wrapAsync(s){return s=`(async () => { +${s} +})()`,{code:s,addReturn:r=>{const u=r.statements[0].expression.callee.body;u.statements=u.statements.slice(0,-1).concat([new ReturnStatement({expression:u.statements.slice(-1)[0]})])}}}function addMiniNotationLocations(s,e,r){const u=["mini","m"];if(s.type==="CallExpression"&&u.includes(s.callee.name)){if(s.arguments.length>1)return console.warn("multi arg mini locations not supported yet..."),s;const i=s.arguments[0];return minifyWithLocation(i,i,e,r)}return s.type==="StaticMemberExpression"&&u.includes(s.property)?minifyWithLocation(s.object,s,e,r):s}function wrapFunction(s,...e){return new CallExpression({callee:new IdentifierExpression({name:s}),arguments:e})}function isBackTickString(s){return s.type==="TemplateExpression"&&s.elements.length===1}function isStringWithDoubleQuotes(s,e,r){if(s.type!=="LiteralStringExpression")return!1;const u=e.get(s);return r.slice(u.start.offset,u.end.offset)[0]==='"'}function isPatternArg(s){if(!s.length)return!1;const e=s.slice(0,-1),r=s[s.length-1];return isPatternFactory(r)?!0:(r==null?void 0:r.type)==="ArrayExpression"?isPatternArg(e):!1}function hasModifierCall(s){return(s==null?void 0:s.type)==="StaticMemberExpression"&&Object.keys(Pattern.prototype.composable).includes(s.property)}const factories=Object.keys(Pattern.prototype.factories).concat(["mini"]);function isPatternFactory(s){return(s==null?void 0:s.type)==="CallExpression"&&factories.includes(s.callee.name)}function canBeOverloaded(s){return s.type==="IdentifierExpression"&&isNote(s.name)||isPatternFactory(s)}function reifyWithLocation(s,e,r,u){const i=getLocationArguments(e,r),n=new CallExpression({callee:new StaticMemberExpression({object:wrapFunction("reify",s),property:"withLocation"}),arguments:i});return u.push(n),n}function minifyWithLocation(s,e,r,u){const i=getLocationArguments(e,r),n=wrapFunction("mini",s),a=new CallExpression({callee:new StaticMemberExpression({object:n,property:"withMiniLocation"}),arguments:i});return u.push(a),a}function getLocationArguments(s,e){const r=e.get(s),u=-1;return[new ArrayExpression({elements:[new LiteralNumericExpression({value:r.start.line+u}),new LiteralNumericExpression({value:r.start.column}),new LiteralNumericExpression({value:r.start.offset})]}),new ArrayExpression({elements:[new LiteralNumericExpression({value:r.end.line+u}),new LiteralNumericExpression({value:r.end.column}),new LiteralNumericExpression({value:r.end.offset})]})]}const tune=`await samples('github:tidalcycles/Dirt-Samples/master') + +stack( + // amen + n("0 1 2 3 4 5 6 7") + .sometimes(x=>x.ply(2)) + .rarely(x=>x.speed("2 | -2")) + .sometimesBy(.4, x=>x.delay(".5")) + .s("amencutup") + .slow(2) + .room(.5) + , + // bass + sine.add(saw.slow(4)).range(0,7).segment(8) + .superimpose(x=>x.add(.1)) + .scale('G0 minor').note() + .s("sawtooth").decay(.1).sustain(0) + .gain(.4).cutoff(perlin.range(300,3000).slow(8)).resonance(10) + .degradeBy("0 0.1 .5 .1") + .rarely(add(note("12"))) + , + // chord + note("Bb3,D4".superimpose(x=>x.add(.2))) + .s('sawtooth').cutoff(1000).struct("<~@3 [~ x]>") + .decay(.05).sustain(.0).delay(.8).delaytime(.125).room(.8) + , + // alien + s("breath").room(1).shape(.6).chop(16).rev().mask("") + , + n("0 1").s("east").delay(.5).degradeBy(.8).speed(rand.range(.5,1.5)) +).reset("")`,ctx=getAudioContext$1(),input=document.getElementById("text");input.innerHTML=tune;evalScope(controls,__vitePreload(()=>Promise.resolve().then(()=>strudel),void 0),__vitePreload(()=>import("./index.60ad3587.js"),[]),__vitePreload(()=>import("./index.865535e6.js"),[]),__vitePreload(()=>import("./index.c55cf335.js"),[]));const{evaluate}=repl({defaultOutput:webaudioOutput,getTime:()=>ctx.currentTime,transpiler:shapeshifter});document.getElementById("start").addEventListener("click",()=>{ctx.resume(),evaluate(input.value)});export{Hap as H,Pattern$3 as P,webaudioOutputTrigger as a,getCachedBuffer as b,chooseInWith as c,reverseBuffer as d,getLoadedBuffer as e,loadGithubSamples as f,getAudioContext$1 as g,samples as h,resetLoadedSamples as i,getLoadedSamples$1 as j,getAugmentedNamespace as k,loadBuffer as l,mod as m,commonjsGlobal as n,getDefaultExportFromCjs as o,panic as p,reify$1 as q,rand as r,strudel as s,stack as t,webaudioOutput as w}; diff --git a/packages/core/examples/vite-vanilla-repl/dist/assets/index.865535e6.js b/packages/core/examples/vite-vanilla-repl/dist/assets/index.865535e6.js new file mode 100644 index 00000000..984c8581 --- /dev/null +++ b/packages/core/examples/vite-vanilla-repl/dist/assets/index.865535e6.js @@ -0,0 +1 @@ +import{g as s,b as d,e as t,j as u,l as o,f as r,p as f,i as p,d as g,h as i,w as l,a as m}from"./index.6e398646.js";export{s as getAudioContext,d as getCachedBuffer,t as getLoadedBuffer,u as getLoadedSamples,o as loadBuffer,r as loadGithubSamples,f as panic,p as resetLoadedSamples,g as reverseBuffer,i as samples,l as webaudioOutput,m as webaudioOutputTrigger}; diff --git a/packages/core/examples/vite-vanilla-repl/dist/assets/index.c55cf335.js b/packages/core/examples/vite-vanilla-repl/dist/assets/index.c55cf335.js new file mode 100644 index 00000000..c97ba1d2 --- /dev/null +++ b/packages/core/examples/vite-vanilla-repl/dist/assets/index.c55cf335.js @@ -0,0 +1 @@ +import{P as _,m as Lt,k as Ut,n as Y,o as Xt,q as Kt,H as Qt,t as Yt}from"./index.6e398646.js";const C=(n,t)=>Array(Math.abs(t)+1).join(n);function g(n,t,e){return function(...o){return console.warn(`${n} is deprecated. Use ${t}.`),e.apply(this,o)}}function z(n){return n!==null&&typeof n=="object"&&typeof n.name=="string"}function q(n){return n!==null&&typeof n=="object"&&typeof n.step=="number"&&typeof n.alt=="number"}const Qn=[0,2,4,-1,1,3,5],Yn=Qn.map(n=>Math.floor(n*7/12));function en(n){const{step:t,alt:e,oct:o,dir:r=1}=n,i=Qn[t]+7*e;if(o===void 0)return[r*i];const a=o-Yn[t]-4*e;return[r*i,r*a]}const Zt=[3,0,4,1,5,2,6];function on(n){const[t,e,o]=n,r=Zt[Jt(t)],i=Math.floor((t+1)/7);if(e===void 0)return{step:r,alt:i,dir:o};const a=e+4*i+Yn[r];return{step:r,alt:i,oct:a,dir:o}}function Jt(n){const t=(n+1)%7;return t<0?7+t:t}const Zn={empty:!0,name:"",pc:"",acc:""},Dn=new Map,vn=n=>"CDEFGAB".charAt(n),E=n=>n<0?C("b",-n):C("#",n),G=n=>n[0]==="b"?-n.length:n.length;function m(n){const t=Dn.get(n);if(t)return t;const e=typeof n=="string"?te(n):q(n)?m(ee(n)):z(n)?m(n.name):Zn;return Dn.set(n,e),e}const Wt=/^([a-gA-G]?)(#{1,}|b{1,}|x{1,}|)(-?\d*)\s*(.*)$/;function rn(n){const t=Wt.exec(n);return[t[1].toUpperCase(),t[2].replace(/x/g,"##"),t[3],t[4]]}function F(n){return m(on(n))}const ne=(n,t)=>(n%t+t)%t,pn=[0,2,4,5,7,9,11];function te(n){const t=rn(n);if(t[0]===""||t[3]!=="")return Zn;const e=t[0],o=t[1],r=t[2],i=(e.charCodeAt(0)+3)%7,a=G(o),s=r.length?+r:void 0,c=en({step:i,alt:a,oct:s}),l=e+o+r,u=e+o,d=(pn[i]+a+120)%12,M=s===void 0?ne(pn[i]+a,12)-12*99:pn[i]+a+12*(s+1),h=M>=0&&M<=127?M:null,A=s===void 0?null:Math.pow(2,(M-69)/12)*440;return{empty:!1,acc:o,alt:a,chroma:d,coord:c,freq:A,height:M,letter:e,midi:h,name:l,oct:s,pc:u,step:i}}function ee(n){const{step:t,alt:e,oct:o}=n,r=vn(t);if(!r)return"";const i=r+E(e);return o||o===0?i+o:i}const yn={empty:!0,name:"",acc:""},oe="([-+]?\\d+)(d{1,4}|m|M|P|A{1,4})",re="(AA|A|P|M|m|d|dd)([-+]?\\d+)",ie=new RegExp("^"+oe+"|"+re+"$");function $n(n){const t=ie.exec(`${n}`);return t===null?["",""]:t[1]?[t[1],t[2]]:[t[4],t[3]]}const kn={};function f(n){return typeof n=="string"?kn[n]||(kn[n]=ae(n)):q(n)?f(ce(n)):z(n)?f(n.name):yn}const Rn=[0,2,4,5,7,9,11],Jn="PMMPPMM";function ae(n){const t=$n(n);if(t[0]==="")return yn;const e=+t[0],o=t[1],r=(Math.abs(e)-1)%7,i=Jn[r];if(i==="M"&&o==="P")return yn;const a=i==="M"?"majorable":"perfectable",s=""+e+o,c=e<0?-1:1,l=e===8||e===-8?e:c*(r+1),u=se(a,o),d=Math.floor((Math.abs(e)-1)/7),M=c*(Rn[r]+u+12*d),h=(c*(Rn[r]+u)%12+12)%12,A=en({step:r,alt:u,oct:d,dir:c});return{empty:!1,name:s,num:e,q:o,step:r,alt:u,dir:c,type:a,simple:l,semitones:M,chroma:h,coord:A,oct:d}}function B(n,t){const[e,o=0]=n,r=e*7+o*12<0,i=t||r?[-e,-o,-1]:[e,o,1];return f(on(i))}function se(n,t){return t==="M"&&n==="majorable"||t==="P"&&n==="perfectable"?0:t==="m"&&n==="majorable"?-1:/^A+$/.test(t)?t.length:/^d+$/.test(t)?-1*(n==="perfectable"?t.length:t.length+1):0}function ce(n){const{step:t,alt:e,oct:o=0,dir:r}=n;if(!r)return"";const i=t+1+7*o,a=i===0?t+1:i,s=r<0?"-":"",c=Jn[t]==="M"?"majorable":"perfectable";return s+a+me(c,e)}function me(n,t){return t===0?n==="majorable"?"M":"P":t===-1&&n==="majorable"?"m":t>0?C("A",t):C("d",n==="perfectable"?t:t+1)}function P(n,t){const e=m(n),o=f(t);if(e.empty||o.empty)return"";const r=e.coord,i=o.coord,a=r.length===1?[r[0]+i[0]]:[r[0]+i[0],r[1]+i[1]];return F(a).name}function D(n,t){const e=m(n),o=m(t);if(e.empty||o.empty)return"";const r=e.coord,i=o.coord,a=i[0]-r[0],s=r.length===2&&i.length===2?i[1]-r[1]:-Math.floor(a*7/12),c=o.height===e.height&&o.midi!==null&&e.midi!==null&&e.step>o.step;return B([a,s],c).name}const Wn=Object.freeze(Object.defineProperty({__proto__:null,accToAlt:G,altToAcc:E,coordToInterval:B,coordToNote:F,decode:on,deprecate:g,distance:D,encode:en,fillStr:C,interval:f,isNamed:z,isPitch:q,note:m,stepToLetter:vn,tokenizeInterval:$n,tokenizeNote:rn,transpose:P},Symbol.toStringTag,{value:"Module"})),On=(n,t)=>Array(t+1).join(n),ue=/^(_{1,}|=|\^{1,}|)([abcdefgABCDEFG])([,']*)$/;function nt(n){const t=ue.exec(n);return t?[t[1],t[2],t[3]]:["","",""]}function W(n){const[t,e,o]=nt(n);if(e==="")return"";let r=4;for(let a=0;a96?e.toUpperCase()+i+(r+1):e+i+r}function tt(n){const t=m(n);if(t.empty||!t.oct&&t.oct!==0)return"";const{letter:e,acc:o,oct:r}=t,i=o[0]==="b"?o.replace(/b/g,"_"):o.replace(/#/g,"^"),a=r>4?e.toLowerCase():e,s=r===5?"":r>4?On("'",r-5):On(",",4-r);return i+a+s}function le(n,t){return tt(P(W(n),t))}function de(n,t){return D(W(n),W(t))}var Me={abcToScientificNotation:W,scientificToAbcNotation:tt,tokenize:nt,transpose:le,distance:de};function fe(n,t){const e=[];for(;t--;e[t]=t+n);return e}function Pe(n,t){const e=[];for(;t--;e[t]=n-t);return e}function pe(n,t){return nt===0||t)}function et(n){return n.map(e=>m(e)).filter(e=>!e.empty).sort((e,o)=>e.height-o.height).map(e=>e.name)}function ge(n){return et(n).filter((t,e,o)=>e===0||t!==o[e-1])}function be(n,t=Math.random){let e,o,r=n.length;for(;r;)e=Math.floor(t()*r--),o=n[r],n[r]=n[e],n[e]=o;return n}function ot(n){return n.length===0?[[]]:ot(n.slice(1)).reduce((t,e)=>t.concat(n.map((o,r)=>{const i=e.slice();return i.splice(r,0,n[0]),i})),[])}const Ae=Object.freeze(Object.defineProperty({__proto__:null,compact:ye,permutations:ot,range:pe,rotate:he,shuffle:be,sortedNoteNames:et,sortedUniqNoteNames:ge},Symbol.toStringTag,{value:"Module"}));function ve(n,t){const e=[];for(;t--;e[t]=t+n);return e}function $e(n,t){const e=[];for(;t--;e[t]=n-t);return e}function an(n,t){return nt===0||t)}function Ne(n,t=Math.random){let e,o,r=n.length;for(;r;)e=Math.floor(t()*r--),o=n[r],n[r]=n[e],n[e]=o;return n}function rt(n){return n.length===0?[[]]:rt(n.slice(1)).reduce((t,e)=>t.concat(n.map((o,r)=>{const i=e.slice();return i.splice(r,0,n[0]),i})),[])}var Ie={compact:Nn,permutations:rt,range:an,rotate:H,shuffle:Ne};const T={empty:!0,name:"",setNum:0,chroma:"000000000000",normalized:"000000000000",intervals:[]},In=n=>Number(n).toString(2),Fn=n=>parseInt(n,2),je=/^[01]{12}$/;function it(n){return je.test(n)}const Se=n=>typeof n=="number"&&n>=0&&n<=4095,Te=n=>n&&it(n.chroma),zn={[T.chroma]:T};function p(n){const t=it(n)?n:Se(n)?In(n):Array.isArray(n)?ze(n):Te(n)?n.chroma:T.chroma;return zn[t]=zn[t]||Fe(t)}const Ve=g("Pcset.pcset","Pcset.get",p),_e=n=>p(n).chroma,Ce=n=>p(n).intervals,we=n=>p(n).setNum,xe=["1P","2m","2M","3m","3M","4P","5d","5P","6m","6M","7m","7M"];function Ee(n){const t=[];for(let e=0;e<12;e++)n.charAt(e)==="1"&&t.push(xe[e]);return t}function De(){return an(2048,4095).map(In)}function jn(n,t=!0){const o=p(n).chroma.split("");return Nn(o.map((r,i)=>{const a=H(i,o);return t&&a[0]==="0"?null:a.join("")}))}function ke(n,t){return p(n).setNum===p(t).setNum}function sn(n){const t=p(n).setNum;return e=>{const o=p(e).setNum;return t&&t!==o&&(o&t)===o}}function cn(n){const t=p(n).setNum;return e=>{const o=p(e).setNum;return t&&t!==o&&(o|t)===o}}function at(n){const t=p(n);return e=>{const o=m(e);return t&&!o.empty&&t.chroma.charAt(o.chroma)==="1"}}function Re(n){const t=at(n);return e=>e.filter(t)}var st={get:p,chroma:_e,num:we,intervals:Ce,chromas:De,isSupersetOf:cn,isSubsetOf:sn,isNoteIncludedIn:at,isEqual:ke,filter:Re,modes:jn,pcset:Ve};function Oe(n){const t=n.split("");return t.map((e,o)=>H(o,t).join(""))}function Fe(n){const t=Fn(n),e=Oe(n).map(Fn).filter(i=>i>=2048).sort()[0],o=In(e),r=Ee(n);return{empty:!1,name:"",setNum:t,chroma:n,normalized:o,intervals:r}}function ze(n){if(n.length===0)return T.chroma;let t;const e=[0,0,0,0,0,0,0,0,0,0,0,0];for(let o=0;on.name).filter(n=>n)}function Le(){return k.map(n=>n.aliases[0]).filter(n=>n)}function Ue(){return Object.keys(j)}function R(){return k.slice()}const Xe=g("ChordType.entries","ChordType.all",R);function Ke(){k=[],j={}}function ct(n,t,e){const o=Ye(n),r={...p(n),name:e||"",quality:o,intervals:n,aliases:t};k.push(r),r.name&&(j[r.name]=r),j[r.setNum]=r,j[r.chroma]=r,r.aliases.forEach(i=>Qe(r,i))}function Qe(n,t){j[t]=n}function Ye(n){const t=e=>n.indexOf(e)!==-1;return t("5A")?"Augmented":t("3M")?"Major":t("5d")?"Diminished":t("3m")?"Minor":"Unknown"}qe.forEach(([n,t,e])=>ct(n.split(" "),e.split(" "),t));k.sort((n,t)=>n.setNum-t.setNum);var mt={names:He,symbols:Le,get:Sn,all:R,add:ct,removeAll:Ke,keys:Ue,entries:Xe,chordType:Be};const Ze=n=>{const t=n.reduce((e,o)=>{const r=m(o).chroma;return r!==void 0&&(e[r]=e[r]||m(o).name),e},{});return e=>t[e]};function Je(n){const t=n.map(o=>m(o).pc).filter(o=>o);return m.length===0?[]:We(t,1).filter(o=>o.weight).sort((o,r)=>r.weight-o.weight).map(o=>o.name)}function We(n,t){const e=n[0],o=m(e).chroma,r=Ze(n),i=jn(n,!1),a=[];return i.forEach((s,c)=>{R().filter(u=>u.chroma===s).forEach(u=>{const d=u.aliases[0],M=r(c);c!==o?a.push({weight:.5*t,name:`${M}${d}/${e}`}):a.push({weight:1*t,name:`${M}${d}`})})}),a}const no=[["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"]],to={...T,intervals:[],aliases:[]};let mn=[],S={};function ut(){return mn.map(n=>n.name)}function un(n){return S[n]||to}const eo=g("ScaleDictionary.scaleType","ScaleType.get",un);function L(){return mn.slice()}const oo=g("ScaleDictionary.entries","ScaleType.all",L);function ro(){return Object.keys(S)}function io(){mn=[],S={}}function lt(n,t,e=[]){const o={...p(n),name:t,intervals:n,aliases:e};return mn.push(o),S[o.name]=o,S[o.setNum]=o,S[o.chroma]=o,o.aliases.forEach(r=>ao(o,r)),o}function ao(n,t){S[t]=n}no.forEach(([n,t,...e])=>lt(n.split(" "),t,e));var dt={names:ut,get:un,all:L,add:lt,removeAll:io,keys:ro,entries:oo,scaleType:eo};const gn={empty:!0,name:"",symbol:"",root:"",rootDegree:0,type:"",tonic:null,setNum:NaN,quality:"Unknown",chroma:"",normalized:"",aliases:[],notes:[],intervals:[]},so=/^(6|64|7|9|11|13)$/;function ln(n){const[t,e,o,r]=rn(n);return t===""?["",n]:t==="A"&&r==="ug"?["","aug"]:!r&&(o==="4"||o==="5")?[t+e,o]:so.test(o)?[t+e,o+r]:[t+e+o,r]}function U(n){if(n==="")return gn;if(Array.isArray(n)&&n.length===2)return Z(n[1],n[0]);{const[t,e]=ln(n),o=Z(e,t);return o.empty?Z(n):o}}function Z(n,t,e){const o=Sn(n),r=m(t||""),i=m(e||"");if(o.empty||t&&r.empty||e&&i.empty)return gn;const a=D(r.pc,i.pc),s=o.intervals.indexOf(a)+1;if(!i.empty&&!s)return gn;const c=Array.from(o.intervals);for(let M=1;MP(r,M));n=o.aliases.indexOf(n)!==-1?n:o.aliases[0];const u=`${r.empty?"":r.pc}${n}${i.empty||s<=1?"":"/"+i.pc}`,d=`${t?r.pc+" ":""}${o.name}${s>1&&e?" over "+i.pc:""}`;return{...o,name:d,symbol:u,type:o.name,root:i.name,intervals:c,rootDegree:s,tonic:r.name,notes:l}}const co=g("Chord.chord","Chord.get",U);function mo(n,t){const[e,o]=ln(n);return e?P(e,t)+o:n}function uo(n){const t=U(n),e=cn(t.chroma);return L().filter(o=>e(o.chroma)).map(o=>o.name)}function lo(n){const t=U(n),e=cn(t.chroma);return R().filter(o=>e(o.chroma)).map(o=>t.tonic+o.aliases[0])}function Mo(n){const t=U(n),e=sn(t.chroma);return R().filter(o=>e(o.chroma)).map(o=>t.tonic+o.aliases[0])}var fo={getChord:Z,get:U,detect:Je,chordScales:uo,extended:lo,reduced:Mo,tokenize:ln,transpose:mo,chord:co};const Po=[[.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"]]],dn=[];Po.forEach(([n,t,e])=>$o(n,t,e));const po={empty:!0,name:"",value:0,fraction:[0,0],shorthand:"",dots:"",names:[]};function ho(){return dn.reduce((n,t)=>(t.names.forEach(e=>n.push(e)),n),[])}function yo(){return dn.map(n=>n.shorthand)}const go=/^([^.]+)(\.*)$/;function Tn(n){const[t,e,o]=go.exec(n)||[],r=dn.find(s=>s.shorthand===e||s.names.includes(e));if(!r)return po;const i=No(r.fraction,o.length),a=i[0]/i[1];return{...r,name:n,dots:o,value:a,fraction:i}}const bo=n=>Tn(n).value,Ao=n=>Tn(n).fraction;var vo={names:ho,shorthands:yo,get:Tn,value:bo,fraction:Ao};function $o(n,t,e){dn.push({empty:!1,dots:"",name:"",value:1/n,fraction:n<1?[1/n,1]:[1,n],shorthand:t,names:e})}function No(n,t){const e=Math.pow(2,t);let o=n[0]*e,r=n[1]*e;const i=o;for(let a=0;af(n).name,So=n=>f(n).semitones,To=n=>f(n).q,Vo=n=>f(n).num;function ft(n){const t=f(n);return t.empty?"":t.simple+t.q}function _o(n){const t=f(n);if(t.empty)return"";const e=(7-t.step)%7,o=t.type==="perfectable"?-t.alt:-(t.alt+1);return f({step:e,alt:o,oct:t.oct,dir:t.dir}).name}const Co=[1,2,2,3,3,4,5,5,6,6,7,7],wo="P m M m M P d P m M m M".split(" ");function xo(n){const t=n<0?-1:1,e=Math.abs(n),o=e%12,r=Math.floor(e/12);return t*(Co[o]+7*r)+wo[o]}const Eo=D,Pt=ht((n,t)=>[n[0]+t[0],n[1]+t[1]]),Do=n=>t=>Pt(n,t),ko=ht((n,t)=>[n[0]-t[0],n[1]-t[1]]);function pt(n,t){const e=Mt(n);if(e.empty)return"";const[o,r,i]=e.coord;return B([o+t,r,i]).name}var bn={names:Io,get:Mt,name:jo,num:Vo,semitones:So,quality:To,fromSemitones:xo,distance:Eo,invert:_o,simplify:ft,add:Pt,addTo:Do,substract:ko,transposeFifths:pt};function ht(n){return(t,e)=>{const o=f(t).coord,r=f(e).coord;if(o&&r){const i=n(o,r);return B(i).name}}}function yt(n){return+n>=0&&+n<=127}function gt(n){if(yt(n))return+n;const t=m(n);return t.empty?null:t.midi}function Ro(n,t=440){return Math.pow(2,(n-69)/12)*t}const Oo=Math.log(2),Fo=Math.log(440);function Vn(n){const t=12*(Math.log(n)-Fo)/Oo+69;return Math.round(t*100)/100}const zo="C C# D D# E F F# G G# A A# B".split(" "),qo="C Db D Eb E F Gb G Ab A Bb B".split(" ");function I(n,t={}){if(isNaN(n)||n===-1/0||n===1/0)return"";n=Math.round(n);const o=(t.sharps===!0?zo:qo)[n%12];if(t.pitchClass)return o;const r=Math.floor(n/12)-1;return o+r}var Go={isMidi:yt,toMidi:gt,midiToFreq:Ro,midiToNoteName:I,freqToMidi:Vn};const Bo=["C","D","E","F","G","A","B"],bt=n=>n.name,At=n=>n.map(m).filter(t=>!t.empty);function Ho(n){return n===void 0?Bo.slice():Array.isArray(n)?At(n).map(bt):[]}const y=m,Lo=n=>y(n).name,Uo=n=>y(n).pc,Xo=n=>y(n).acc,Ko=n=>y(n).oct,Qo=n=>y(n).midi,Yo=n=>y(n).freq,Zo=n=>y(n).chroma;function vt(n){return I(n)}function Jo(n){return I(Vn(n))}function Wo(n){return I(Vn(n),{sharps:!0})}function nr(n){return I(n,{sharps:!0})}const _n=P,tr=P,$t=n=>t=>_n(t,n),er=$t,Nt=n=>t=>_n(n,t),or=Nt;function nn(n,t){const e=y(n);if(e.empty)return"";const[o,r]=e.coord;return F(r===void 0?[o+t]:[o+t,r]).name}const rr=nn,Cn=(n,t)=>n.height-t.height,ir=(n,t)=>t.height-n.height;function It(n,t){return t=t||Cn,At(n).sort(t).map(bt)}function jt(n){return It(n,Cn).filter((t,e,o)=>e===0||t!==o[e-1])}const ar=n=>{const t=y(n);return t.empty?"":I(t.midi||t.chroma,{sharps:t.alt>0,pitchClass:t.midi===null})};function St(n,t){const e=y(n);if(e.empty)return"";const o=y(t||I(e.midi||e.chroma,{sharps:e.alt<0,pitchClass:!0}));if(o.empty||o.chroma!==e.chroma)return"";if(e.oct===void 0)return o.pc;const r=e.chroma-e.alt,i=o.chroma-o.alt,a=r>11||i<0?-1:r<0||i>11?1:0,s=e.oct+a;return o.pc+s}var w={names:Ho,get:y,name:Lo,pitchClass:Uo,accidentals:Xo,octave:Ko,midi:Qo,ascending:Cn,descending:ir,sortedNames:It,sortedUniqNames:jt,fromMidi:vt,fromMidiSharps:nr,freq:Yo,fromFreq:Jo,fromFreqSharps:Wo,chroma:Zo,transpose:_n,tr,transposeBy:$t,trBy:er,transposeFrom:Nt,trFrom:or,transposeFifths:nn,trFifths:rr,simplify:ar,enharmonic:St};const Tt={empty:!0,name:"",chordType:""},qn={};function $(n){return typeof n=="string"?qn[n]||(qn[n]=Mr(n)):typeof n=="number"?$(Mn[n]||""):q(n)?mr(n):z(n)?$(n.name):Tt}const sr=g("RomanNumeral.romanNumeral","RomanNumeral.get",$);function cr(n=!0){return(n?Mn:dr).slice()}function mr(n){return $(E(n.alt)+Mn[n.step])}const ur=/^(#{1,}|b{1,}|x{1,}|)(IV|I{1,3}|VI{0,2}|iv|i{1,3}|vi{0,2})([^IViv]*)$/;function lr(n){return ur.exec(n)||["","","",""]}const Vt="I II III IV V VI VII",Mn=Vt.split(" "),dr=Vt.toLowerCase().split(" ");function Mr(n){const[t,e,o,r]=lr(n);if(!o)return Tt;const i=o.toUpperCase(),a=Mn.indexOf(i),s=G(e),c=1;return{empty:!1,name:t,roman:o,interval:f({step:a,alt:s,dir:c}).name,acc:e,chordType:r,alt:s,step:a,major:o===i,oct:0,dir:c}}var fr={names:cr,get:$,romanNumeral:sr};const b=Object.freeze([]),_t={type:"major",tonic:"",alteration:0,keySignature:""},J={tonic:"",grades:b,intervals:b,scale:b,chords:b,chordsHarmonicFunction:b,chordScales:b},Pr={..._t,...J,type:"major",minorRelative:"",scale:b,secondaryDominants:b,secondaryDominantsMinorRelative:b,substituteDominants:b,substituteDominantsMinorRelative:b},pr={..._t,type:"minor",relativeMajor:"",natural:J,harmonic:J,melodic:J},Gn=(n,t,e="")=>t.map((o,r)=>`${n[r]}${e}${o}`);function fn(n,t,e,o){return r=>{const i=n.map(s=>$(s).interval||""),a=i.map(s=>P(r,s));return{tonic:r,grades:n,intervals:i,scale:a,chords:Gn(a,t),chordsHarmonicFunction:e.slice(),chordScales:Gn(a,o," ")}}}const Ct=(n,t)=>{const e=m(n),o=m(t);return e.empty||o.empty?0:o.coord[0]-e.coord[0]},hr=fn("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(",")),yr=fn("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(",")),gr=fn("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(",")),br=fn("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(","));function Ar(n){const t=m(n).pc;if(!t)return Pr;const e=hr(t),o=Ct("C",t),r=i=>{const a=$(i);return a.empty?"":P(n,a.interval)+a.chordType};return{...e,type:"major",minorRelative:P(t,"-3m"),alteration:o,keySignature:E(o),secondaryDominants:"- VI7 VII7 I7 II7 III7 -".split(" ").map(r),secondaryDominantsMinorRelative:"- IIIm7b5 IV#m7 Vm7 VIm7 VIIm7b5 -".split(" ").map(r),substituteDominants:"- bIII7 IV7 bV7 bVI7 bVII7 -".split(" ").map(r),substituteDominantsMinorRelative:"- IIIm7 Im7 IIbm7 VIm7 IVm7 -".split(" ").map(r)}}function vr(n){const t=m(n).pc;if(!t)return pr;const e=Ct("C",t)-3;return{type:"minor",tonic:t,relativeMajor:P(t,"3m"),alteration:e,keySignature:E(e),natural:yr(t),harmonic:gr(t),melodic:br(t)}}function $r(n){return typeof n=="number"?nn("C",n):typeof n=="string"&&/^b+|#+$/.test(n)?nn("C",G(n)):null}var Nr={majorKey:Ar,majorTonicFromKeySignature:$r,minorKey:vr};const wn=[[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"]],Bn={...T,name:"",alt:0,modeNum:NaN,triad:"",seventh:"",aliases:[]},xn=wn.map(Tr),An={};xn.forEach(n=>{An[n.name]=n,n.aliases.forEach(t=>{An[t]=n})});function V(n){return typeof n=="string"?An[n.toLowerCase()]||Bn:n&&n.name?V(n.name):Bn}const Ir=g("Mode.mode","Mode.get",V);function wt(){return xn.slice()}const jr=g("Mode.mode","Mode.all",wt);function Sr(){return xn.map(n=>n.name)}function Tr(n){const[t,e,o,r,i,a,s]=n,c=s?[s]:[],l=Number(e).toString(2);return{empty:!1,intervals:un(r).intervals,modeNum:t,chroma:l,normalized:l,name:r,setNum:e,alt:o,triad:i,seventh:a,aliases:c}}function Vr(n,t){return V(n).intervals.map(e=>P(t,e))}function xt(n){return(t,e)=>{const o=V(t);if(o.empty)return[];const r=H(o.modeNum,n),i=o.intervals.map(a=>P(e,a));return r.map((a,s)=>i[s]+a)}}const _r=xt(wn.map(n=>n[4])),Cr=xt(wn.map(n=>n[5]));function Et(n,t){const e=V(t),o=V(n);return e.empty||o.empty?"":ft(pt("1P",o.alt-e.alt))}function wr(n,t,e){return P(e,Et(n,t))}var xr={get:V,names:Sr,all:wt,distance:Et,relativeTonic:wr,notes:Vr,triads:_r,seventhChords:Cr,entries:jr,mode:Ir};function Er(n,t){return t.map($).map(o=>P(n,f(o))+o.chordType)}function Dr(n,t){return t.map(e=>{const[o,r]=ln(e),i=D(n,o);return $(f(i)).name+r})}var kr={fromRomanNumerals:Er,toRomanNumerals:Dr};function Dt(n){const t=Nn(n.map(gt));return!n.length||t.length!==n.length?[]:t.reduce((e,o)=>{const r=e[e.length-1];return e.concat(an(r,o).slice(1))},[t[0]])}function Rr(n,t){return Dt(n).map(e=>I(e,t))}var Or={numeric:Dt,chromatic:Rr};const Fr={empty:!0,name:"",type:"",tonic:null,setNum:NaN,chroma:"",normalized:"",aliases:[],notes:[],intervals:[]};function kt(n){if(typeof n!="string")return["",""];const t=n.indexOf(" "),e=m(n.substring(0,t));if(e.empty){const r=m(n);return r.empty?["",n]:[r.name,""]}const o=n.substring(e.name.length+1);return[e.name,o.length?o:""]}const zr=ut;function N(n){const t=Array.isArray(n)?n:kt(n),e=m(t[0]).name,o=un(t[1]);if(o.empty)return Fr;const r=o.name,i=e?o.intervals.map(s=>P(e,s)):[],a=e?e+" "+r:r;return{...o,name:a,type:r,tonic:e,notes:i}}const qr=g("Scale.scale","Scale.get",N);function Gr(n){const t=N(n),e=sn(t.chroma);return R().filter(o=>e(o.chroma)).map(o=>o.aliases[0])}function Br(n){const t=N(n),e=cn(t.chroma);return L().filter(o=>e(o.chroma)).map(o=>o.name)}function Hr(n){const t=sn(N(n).chroma);return L().filter(e=>t(e.chroma)).map(e=>e.name)}function Rt(n){const t=n.map(r=>m(r).pc).filter(r=>r),e=t[0],o=jt(t);return H(o.indexOf(e),o)}function Lr(n){const t=N(n);if(t.empty)return[];const e=t.tonic?t.notes:t.intervals;return jn(t.chroma).map((o,r)=>{const i=N(o).name;return i?[e[r],i]:["",""]}).filter(o=>o[0])}function Ur(n){const t=Array.isArray(n)?Rt(n):N(n).notes,e=t.map(o=>m(o).chroma);return o=>{const r=m(typeof o=="number"?vt(o):o),i=r.height;if(i===void 0)return;const a=i%12,s=e.indexOf(a);if(s!==-1)return St(r.name,t[s])}}function Xr(n){const t=Ur(n);return(e,o)=>{const r=m(e).height,i=m(o).height;return r===void 0||i===void 0?[]:an(r,i).map(t).filter(a=>a)}}var tn={get:N,names:zr,extended:Br,modeNames:Lr,reduced:Hr,scaleChords:Gr,scaleNotes:Rt,tokenize:kt,rangeOf:Xr,scale:qr};const Kr={empty:!0,name:"",upper:void 0,lower:void 0,type:void 0,additive:[]},Qr=["4/4","3/4","2/4","2/2","12/8","9/8","6/8","3/8"];function Yr(){return Qr.slice()}const Zr=/^(\d?\d(?:\+\d)*)\/(\d)$/,Hn=new Map;function Jr(n){const t=Hn.get(n);if(t)return t;const e=ni(En(n));return Hn.set(n,e),e}function En(n){if(typeof n=="string"){const[i,a,s]=Zr.exec(n)||[];return En([a,s])}const[t,e]=n,o=+e;if(typeof t=="number")return[t,o];const r=t.split("+").map(i=>+i);return r.length===1?[r[0],o]:[r,o]}var Wr={names:Yr,parse:En,get:Jr};function ni([n,t]){const e=Array.isArray(n)?n.reduce((s,c)=>s+c,0):n,o=t;if(e===0||o===0)return Kr;const r=Array.isArray(n)?`${n.join("+")}/${t}`:`${n}/${t}`,i=Array.isArray(n)?n:[],a=o===4||o===2?"simple":o===8&&e%3===0?"compound":"irregular";return{empty:!1,name:r,type:a,upper:e,lower:o,additive:i}}const ti=Wn,ei=st,oi=mt,ri=dt,ii=Object.freeze(Object.defineProperty({__proto__:null,Array:Ae,Core:Wn,ChordDictionary:oi,PcSet:ei,ScaleDictionary:ri,Tonal:ti,AbcNotation:Me,Chord:fo,ChordType:mt,Collection:Ie,DurationValue:vo,Interval:bn,Key:Nr,Midi:Go,Mode:xr,Note:w,Pcset:st,Progression:kr,Range:Or,RomanNumeral:fr,Scale:tn,ScaleType:dt,TimeSignature:Wr,accToAlt:G,altToAcc:E,coordToInterval:B,coordToNote:F,decode:on,deprecate:g,distance:D,encode:en,fillStr:C,interval:f,isNamed:z,isPitch:q,note:m,stepToLetter:vn,tokenizeInterval:$n,tokenizeNote:rn,transpose:P},Symbol.toStringTag,{value:"Module"}));function Ot(n,t,e){let[o,r]=tn.tokenize(n),{notes:i}=tn.get(`${o} ${r}`);if(i=i.map(h=>w.get(h).pc),t=Number(t),isNaN(t))throw new Error(`scale offset "${t}" not a number`);const{pc:a,oct:s=3}=w.get(e),c=i.indexOf(a);if(c===-1)throw new Error(`note "${e}" is not in scale "${n}"`);let l=c,u=s,d=a;const M=Math.sign(t);for(;Math.abs(l-c)0&&d[0]==="C"&&(u+=M)}return d+u}_.prototype._transpose=function(n){return this._withHap(t=>{const e=isNaN(Number(n))?String(n):bn.fromSemitones(n);if(typeof t.value=="number"){const o=typeof e=="string"?bn.semitones(e)||0:e;return t.withValue(()=>t.value+o)}return t.withValue(()=>w.simplify(w.transpose(t.value,e)))})};_.prototype._scaleTranspose=function(n){return this._withHap(t=>{if(!t.context.scale)throw new Error("can only use scaleTranspose after .scale");if(typeof t.value!="string")throw new Error("can only use scaleTranspose with notes");return t.withValue(()=>Ot(t.context.scale,Number(n),t.value))})};_.prototype._scale=function(n){return this._withHap(t=>{let e=t.value;const o=Number(e);if(!isNaN(o)){let[r,i]=tn.tokenize(n);const{pc:a,oct:s=3}=w.get(r);e=Ot(a+" "+i,o,a+s)}return t.withValue(()=>e).setContext({...t.context,scale:n})})};_.prototype.define("transpose",(n,t)=>t.transpose(n),{composable:!0,patternified:!0});_.prototype.define("scale",(n,t)=>t.scale(n),{composable:!0,patternified:!0});_.prototype.define("scaleTranspose",(n,t)=>t.scaleTranspose(n),{composable:!0,patternified:!0});var Ft={},hn={},X={};X.__esModule=!0;X.getBestVoicing=void 0;function ai(n){var t=n.chord,e=n.range,o=n.finder,r=n.picker,i=n.lastVoicing,a=o(t,e);return a.length?r(a,i):[]}X.getBestVoicing=ai;var O={};const zt=Ut(ii);var K={};K.__esModule=!0;K.tokenizeChord=void 0;function si(n){var t=(n||"").match(/^([A-G][b#]*)([^\/]*)[\/]?([A-G][b#]*)?$/);return t?t.slice(1):[]}K.tokenizeChord=si;var Ln;function ci(){if(Ln)return O;Ln=1,O.__esModule=!0,O.voicingsInRange=void 0;var n=zt,t=qt(),e=K;function o(r,i,a){i===void 0&&(i=t.lefthand),a===void 0&&(a=["D3","A4"]);var s=(0,e.tokenizeChord)(r),c=s[0],l=s[1];if(!i[l])return[];var u=i[l].map(function(M){return M.split(" ")}),d=n.Range.chromatic(a);return u.reduce(function(M,h){var A=h.map(function(v){return n.Interval.substract(v,h[0])}),Q=n.Note.transpose(c,h[0]),Gt=d.filter(function(v){return n.Note.chroma(v)===n.Note.chroma(Q)}).filter(function(v){return n.Note.midi(n.Note.transpose(v,A[A.length-1]))<=n.Note.midi(a[1])}).map(function(v){return n.Note.enharmonic(v,Q)}),Bt=Gt.map(function(v){return A.map(function(Ht){return n.Note.transpose(v,Ht)})});return M.concat(Bt)},[])}return O.voicingsInRange=o,O}var Un;function qt(){return Un||(Un=1,function(n){var t=Y&&Y.__assign||function(){return t=Object.assign||function(s){for(var c,l=1,u=arguments.length;lui({chord:n,dictionary:di,range:e,picker:li,lastVoicing:t}),x=_;x.prototype.fmapNested=function(n){return new x(t=>this.query(t).map(e=>Kt(n(e)).query(t).map(o=>new Qt(e.whole,e.part,o.value,o.context))).flat())};x.prototype.voicings=function(n){let t;return n!=null&&n.length||(n=["F3","A4"]),this.fmapNested(e=>(t=Mi(e.value,t,n),Yt(...t)._withContext(()=>({locations:e.context.locations||[]}))))};x.prototype._rootNotes=function(n=2){return this.fmap(t=>{const[e,o]=t.match(/^([a-gA-G][b#]?).*$/);return o+n})};x.prototype.define("voicings",(n,t)=>t.voicings(n),{composable:!0});x.prototype.define("rootNotes",(n,t)=>t.rootNotes(n),{composable:!0,patternified:!0}); diff --git a/packages/core/examples/vite-vanilla-repl/dist/index.html b/packages/core/examples/vite-vanilla-repl/dist/index.html new file mode 100644 index 00000000..8b5585fc --- /dev/null +++ b/packages/core/examples/vite-vanilla-repl/dist/index.html @@ -0,0 +1,36 @@ + + + + + + Vite Vanilla Strudel REPL + + + +
+ +
+ +
+ + + diff --git a/packages/core/examples/vite-vanilla-repl/main.js b/packages/core/examples/vite-vanilla-repl/main.js index cc50e063..d0497e79 100644 --- a/packages/core/examples/vite-vanilla-repl/main.js +++ b/packages/core/examples/vite-vanilla-repl/main.js @@ -20,4 +20,7 @@ const { evaluate } = repl({ getTime: () => ctx.currentTime, transpiler: shapeshifter, }); -document.getElementById('start').addEventListener('click', () => evaluate(input.value)); +document.getElementById('start').addEventListener('click', () => { + ctx.resume(); + evaluate(input.value); +}); From 5fb36acb046ead7cd6ad3cd10f532e7f585f536a Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 6 Nov 2022 16:06:54 +0100 Subject: [PATCH 43/45] rebuild with correct base --- .../dist/assets/{index.c55cf335.js => index.66252a18.js} | 2 +- .../dist/assets/{index.865535e6.js => index.b66fb637.js} | 2 +- .../dist/assets/{index.60ad3587.js => index.d9f8bbbd.js} | 2 +- .../dist/assets/{index.6e398646.js => index.f88145a1.js} | 4 ++-- packages/core/examples/vite-vanilla-repl/dist/index.html | 2 +- packages/core/examples/vite-vanilla-repl/package.json | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) rename packages/core/examples/vite-vanilla-repl/dist/assets/{index.c55cf335.js => index.66252a18.js} (99%) rename packages/core/examples/vite-vanilla-repl/dist/assets/{index.865535e6.js => index.b66fb637.js} (82%) rename packages/core/examples/vite-vanilla-repl/dist/assets/{index.60ad3587.js => index.d9f8bbbd.js} (99%) rename packages/core/examples/vite-vanilla-repl/dist/assets/{index.6e398646.js => index.f88145a1.js} (99%) diff --git a/packages/core/examples/vite-vanilla-repl/dist/assets/index.c55cf335.js b/packages/core/examples/vite-vanilla-repl/dist/assets/index.66252a18.js similarity index 99% rename from packages/core/examples/vite-vanilla-repl/dist/assets/index.c55cf335.js rename to packages/core/examples/vite-vanilla-repl/dist/assets/index.66252a18.js index c97ba1d2..ddb8aac4 100644 --- a/packages/core/examples/vite-vanilla-repl/dist/assets/index.c55cf335.js +++ b/packages/core/examples/vite-vanilla-repl/dist/assets/index.66252a18.js @@ -1 +1 @@ -import{P as _,m as Lt,k as Ut,n as Y,o as Xt,q as Kt,H as Qt,t as Yt}from"./index.6e398646.js";const C=(n,t)=>Array(Math.abs(t)+1).join(n);function g(n,t,e){return function(...o){return console.warn(`${n} is deprecated. Use ${t}.`),e.apply(this,o)}}function z(n){return n!==null&&typeof n=="object"&&typeof n.name=="string"}function q(n){return n!==null&&typeof n=="object"&&typeof n.step=="number"&&typeof n.alt=="number"}const Qn=[0,2,4,-1,1,3,5],Yn=Qn.map(n=>Math.floor(n*7/12));function en(n){const{step:t,alt:e,oct:o,dir:r=1}=n,i=Qn[t]+7*e;if(o===void 0)return[r*i];const a=o-Yn[t]-4*e;return[r*i,r*a]}const Zt=[3,0,4,1,5,2,6];function on(n){const[t,e,o]=n,r=Zt[Jt(t)],i=Math.floor((t+1)/7);if(e===void 0)return{step:r,alt:i,dir:o};const a=e+4*i+Yn[r];return{step:r,alt:i,oct:a,dir:o}}function Jt(n){const t=(n+1)%7;return t<0?7+t:t}const Zn={empty:!0,name:"",pc:"",acc:""},Dn=new Map,vn=n=>"CDEFGAB".charAt(n),E=n=>n<0?C("b",-n):C("#",n),G=n=>n[0]==="b"?-n.length:n.length;function m(n){const t=Dn.get(n);if(t)return t;const e=typeof n=="string"?te(n):q(n)?m(ee(n)):z(n)?m(n.name):Zn;return Dn.set(n,e),e}const Wt=/^([a-gA-G]?)(#{1,}|b{1,}|x{1,}|)(-?\d*)\s*(.*)$/;function rn(n){const t=Wt.exec(n);return[t[1].toUpperCase(),t[2].replace(/x/g,"##"),t[3],t[4]]}function F(n){return m(on(n))}const ne=(n,t)=>(n%t+t)%t,pn=[0,2,4,5,7,9,11];function te(n){const t=rn(n);if(t[0]===""||t[3]!=="")return Zn;const e=t[0],o=t[1],r=t[2],i=(e.charCodeAt(0)+3)%7,a=G(o),s=r.length?+r:void 0,c=en({step:i,alt:a,oct:s}),l=e+o+r,u=e+o,d=(pn[i]+a+120)%12,M=s===void 0?ne(pn[i]+a,12)-12*99:pn[i]+a+12*(s+1),h=M>=0&&M<=127?M:null,A=s===void 0?null:Math.pow(2,(M-69)/12)*440;return{empty:!1,acc:o,alt:a,chroma:d,coord:c,freq:A,height:M,letter:e,midi:h,name:l,oct:s,pc:u,step:i}}function ee(n){const{step:t,alt:e,oct:o}=n,r=vn(t);if(!r)return"";const i=r+E(e);return o||o===0?i+o:i}const yn={empty:!0,name:"",acc:""},oe="([-+]?\\d+)(d{1,4}|m|M|P|A{1,4})",re="(AA|A|P|M|m|d|dd)([-+]?\\d+)",ie=new RegExp("^"+oe+"|"+re+"$");function $n(n){const t=ie.exec(`${n}`);return t===null?["",""]:t[1]?[t[1],t[2]]:[t[4],t[3]]}const kn={};function f(n){return typeof n=="string"?kn[n]||(kn[n]=ae(n)):q(n)?f(ce(n)):z(n)?f(n.name):yn}const Rn=[0,2,4,5,7,9,11],Jn="PMMPPMM";function ae(n){const t=$n(n);if(t[0]==="")return yn;const e=+t[0],o=t[1],r=(Math.abs(e)-1)%7,i=Jn[r];if(i==="M"&&o==="P")return yn;const a=i==="M"?"majorable":"perfectable",s=""+e+o,c=e<0?-1:1,l=e===8||e===-8?e:c*(r+1),u=se(a,o),d=Math.floor((Math.abs(e)-1)/7),M=c*(Rn[r]+u+12*d),h=(c*(Rn[r]+u)%12+12)%12,A=en({step:r,alt:u,oct:d,dir:c});return{empty:!1,name:s,num:e,q:o,step:r,alt:u,dir:c,type:a,simple:l,semitones:M,chroma:h,coord:A,oct:d}}function B(n,t){const[e,o=0]=n,r=e*7+o*12<0,i=t||r?[-e,-o,-1]:[e,o,1];return f(on(i))}function se(n,t){return t==="M"&&n==="majorable"||t==="P"&&n==="perfectable"?0:t==="m"&&n==="majorable"?-1:/^A+$/.test(t)?t.length:/^d+$/.test(t)?-1*(n==="perfectable"?t.length:t.length+1):0}function ce(n){const{step:t,alt:e,oct:o=0,dir:r}=n;if(!r)return"";const i=t+1+7*o,a=i===0?t+1:i,s=r<0?"-":"",c=Jn[t]==="M"?"majorable":"perfectable";return s+a+me(c,e)}function me(n,t){return t===0?n==="majorable"?"M":"P":t===-1&&n==="majorable"?"m":t>0?C("A",t):C("d",n==="perfectable"?t:t+1)}function P(n,t){const e=m(n),o=f(t);if(e.empty||o.empty)return"";const r=e.coord,i=o.coord,a=r.length===1?[r[0]+i[0]]:[r[0]+i[0],r[1]+i[1]];return F(a).name}function D(n,t){const e=m(n),o=m(t);if(e.empty||o.empty)return"";const r=e.coord,i=o.coord,a=i[0]-r[0],s=r.length===2&&i.length===2?i[1]-r[1]:-Math.floor(a*7/12),c=o.height===e.height&&o.midi!==null&&e.midi!==null&&e.step>o.step;return B([a,s],c).name}const Wn=Object.freeze(Object.defineProperty({__proto__:null,accToAlt:G,altToAcc:E,coordToInterval:B,coordToNote:F,decode:on,deprecate:g,distance:D,encode:en,fillStr:C,interval:f,isNamed:z,isPitch:q,note:m,stepToLetter:vn,tokenizeInterval:$n,tokenizeNote:rn,transpose:P},Symbol.toStringTag,{value:"Module"})),On=(n,t)=>Array(t+1).join(n),ue=/^(_{1,}|=|\^{1,}|)([abcdefgABCDEFG])([,']*)$/;function nt(n){const t=ue.exec(n);return t?[t[1],t[2],t[3]]:["","",""]}function W(n){const[t,e,o]=nt(n);if(e==="")return"";let r=4;for(let a=0;a96?e.toUpperCase()+i+(r+1):e+i+r}function tt(n){const t=m(n);if(t.empty||!t.oct&&t.oct!==0)return"";const{letter:e,acc:o,oct:r}=t,i=o[0]==="b"?o.replace(/b/g,"_"):o.replace(/#/g,"^"),a=r>4?e.toLowerCase():e,s=r===5?"":r>4?On("'",r-5):On(",",4-r);return i+a+s}function le(n,t){return tt(P(W(n),t))}function de(n,t){return D(W(n),W(t))}var Me={abcToScientificNotation:W,scientificToAbcNotation:tt,tokenize:nt,transpose:le,distance:de};function fe(n,t){const e=[];for(;t--;e[t]=t+n);return e}function Pe(n,t){const e=[];for(;t--;e[t]=n-t);return e}function pe(n,t){return nt===0||t)}function et(n){return n.map(e=>m(e)).filter(e=>!e.empty).sort((e,o)=>e.height-o.height).map(e=>e.name)}function ge(n){return et(n).filter((t,e,o)=>e===0||t!==o[e-1])}function be(n,t=Math.random){let e,o,r=n.length;for(;r;)e=Math.floor(t()*r--),o=n[r],n[r]=n[e],n[e]=o;return n}function ot(n){return n.length===0?[[]]:ot(n.slice(1)).reduce((t,e)=>t.concat(n.map((o,r)=>{const i=e.slice();return i.splice(r,0,n[0]),i})),[])}const Ae=Object.freeze(Object.defineProperty({__proto__:null,compact:ye,permutations:ot,range:pe,rotate:he,shuffle:be,sortedNoteNames:et,sortedUniqNoteNames:ge},Symbol.toStringTag,{value:"Module"}));function ve(n,t){const e=[];for(;t--;e[t]=t+n);return e}function $e(n,t){const e=[];for(;t--;e[t]=n-t);return e}function an(n,t){return nt===0||t)}function Ne(n,t=Math.random){let e,o,r=n.length;for(;r;)e=Math.floor(t()*r--),o=n[r],n[r]=n[e],n[e]=o;return n}function rt(n){return n.length===0?[[]]:rt(n.slice(1)).reduce((t,e)=>t.concat(n.map((o,r)=>{const i=e.slice();return i.splice(r,0,n[0]),i})),[])}var Ie={compact:Nn,permutations:rt,range:an,rotate:H,shuffle:Ne};const T={empty:!0,name:"",setNum:0,chroma:"000000000000",normalized:"000000000000",intervals:[]},In=n=>Number(n).toString(2),Fn=n=>parseInt(n,2),je=/^[01]{12}$/;function it(n){return je.test(n)}const Se=n=>typeof n=="number"&&n>=0&&n<=4095,Te=n=>n&&it(n.chroma),zn={[T.chroma]:T};function p(n){const t=it(n)?n:Se(n)?In(n):Array.isArray(n)?ze(n):Te(n)?n.chroma:T.chroma;return zn[t]=zn[t]||Fe(t)}const Ve=g("Pcset.pcset","Pcset.get",p),_e=n=>p(n).chroma,Ce=n=>p(n).intervals,we=n=>p(n).setNum,xe=["1P","2m","2M","3m","3M","4P","5d","5P","6m","6M","7m","7M"];function Ee(n){const t=[];for(let e=0;e<12;e++)n.charAt(e)==="1"&&t.push(xe[e]);return t}function De(){return an(2048,4095).map(In)}function jn(n,t=!0){const o=p(n).chroma.split("");return Nn(o.map((r,i)=>{const a=H(i,o);return t&&a[0]==="0"?null:a.join("")}))}function ke(n,t){return p(n).setNum===p(t).setNum}function sn(n){const t=p(n).setNum;return e=>{const o=p(e).setNum;return t&&t!==o&&(o&t)===o}}function cn(n){const t=p(n).setNum;return e=>{const o=p(e).setNum;return t&&t!==o&&(o|t)===o}}function at(n){const t=p(n);return e=>{const o=m(e);return t&&!o.empty&&t.chroma.charAt(o.chroma)==="1"}}function Re(n){const t=at(n);return e=>e.filter(t)}var st={get:p,chroma:_e,num:we,intervals:Ce,chromas:De,isSupersetOf:cn,isSubsetOf:sn,isNoteIncludedIn:at,isEqual:ke,filter:Re,modes:jn,pcset:Ve};function Oe(n){const t=n.split("");return t.map((e,o)=>H(o,t).join(""))}function Fe(n){const t=Fn(n),e=Oe(n).map(Fn).filter(i=>i>=2048).sort()[0],o=In(e),r=Ee(n);return{empty:!1,name:"",setNum:t,chroma:n,normalized:o,intervals:r}}function ze(n){if(n.length===0)return T.chroma;let t;const e=[0,0,0,0,0,0,0,0,0,0,0,0];for(let o=0;on.name).filter(n=>n)}function Le(){return k.map(n=>n.aliases[0]).filter(n=>n)}function Ue(){return Object.keys(j)}function R(){return k.slice()}const Xe=g("ChordType.entries","ChordType.all",R);function Ke(){k=[],j={}}function ct(n,t,e){const o=Ye(n),r={...p(n),name:e||"",quality:o,intervals:n,aliases:t};k.push(r),r.name&&(j[r.name]=r),j[r.setNum]=r,j[r.chroma]=r,r.aliases.forEach(i=>Qe(r,i))}function Qe(n,t){j[t]=n}function Ye(n){const t=e=>n.indexOf(e)!==-1;return t("5A")?"Augmented":t("3M")?"Major":t("5d")?"Diminished":t("3m")?"Minor":"Unknown"}qe.forEach(([n,t,e])=>ct(n.split(" "),e.split(" "),t));k.sort((n,t)=>n.setNum-t.setNum);var mt={names:He,symbols:Le,get:Sn,all:R,add:ct,removeAll:Ke,keys:Ue,entries:Xe,chordType:Be};const Ze=n=>{const t=n.reduce((e,o)=>{const r=m(o).chroma;return r!==void 0&&(e[r]=e[r]||m(o).name),e},{});return e=>t[e]};function Je(n){const t=n.map(o=>m(o).pc).filter(o=>o);return m.length===0?[]:We(t,1).filter(o=>o.weight).sort((o,r)=>r.weight-o.weight).map(o=>o.name)}function We(n,t){const e=n[0],o=m(e).chroma,r=Ze(n),i=jn(n,!1),a=[];return i.forEach((s,c)=>{R().filter(u=>u.chroma===s).forEach(u=>{const d=u.aliases[0],M=r(c);c!==o?a.push({weight:.5*t,name:`${M}${d}/${e}`}):a.push({weight:1*t,name:`${M}${d}`})})}),a}const no=[["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"]],to={...T,intervals:[],aliases:[]};let mn=[],S={};function ut(){return mn.map(n=>n.name)}function un(n){return S[n]||to}const eo=g("ScaleDictionary.scaleType","ScaleType.get",un);function L(){return mn.slice()}const oo=g("ScaleDictionary.entries","ScaleType.all",L);function ro(){return Object.keys(S)}function io(){mn=[],S={}}function lt(n,t,e=[]){const o={...p(n),name:t,intervals:n,aliases:e};return mn.push(o),S[o.name]=o,S[o.setNum]=o,S[o.chroma]=o,o.aliases.forEach(r=>ao(o,r)),o}function ao(n,t){S[t]=n}no.forEach(([n,t,...e])=>lt(n.split(" "),t,e));var dt={names:ut,get:un,all:L,add:lt,removeAll:io,keys:ro,entries:oo,scaleType:eo};const gn={empty:!0,name:"",symbol:"",root:"",rootDegree:0,type:"",tonic:null,setNum:NaN,quality:"Unknown",chroma:"",normalized:"",aliases:[],notes:[],intervals:[]},so=/^(6|64|7|9|11|13)$/;function ln(n){const[t,e,o,r]=rn(n);return t===""?["",n]:t==="A"&&r==="ug"?["","aug"]:!r&&(o==="4"||o==="5")?[t+e,o]:so.test(o)?[t+e,o+r]:[t+e+o,r]}function U(n){if(n==="")return gn;if(Array.isArray(n)&&n.length===2)return Z(n[1],n[0]);{const[t,e]=ln(n),o=Z(e,t);return o.empty?Z(n):o}}function Z(n,t,e){const o=Sn(n),r=m(t||""),i=m(e||"");if(o.empty||t&&r.empty||e&&i.empty)return gn;const a=D(r.pc,i.pc),s=o.intervals.indexOf(a)+1;if(!i.empty&&!s)return gn;const c=Array.from(o.intervals);for(let M=1;MP(r,M));n=o.aliases.indexOf(n)!==-1?n:o.aliases[0];const u=`${r.empty?"":r.pc}${n}${i.empty||s<=1?"":"/"+i.pc}`,d=`${t?r.pc+" ":""}${o.name}${s>1&&e?" over "+i.pc:""}`;return{...o,name:d,symbol:u,type:o.name,root:i.name,intervals:c,rootDegree:s,tonic:r.name,notes:l}}const co=g("Chord.chord","Chord.get",U);function mo(n,t){const[e,o]=ln(n);return e?P(e,t)+o:n}function uo(n){const t=U(n),e=cn(t.chroma);return L().filter(o=>e(o.chroma)).map(o=>o.name)}function lo(n){const t=U(n),e=cn(t.chroma);return R().filter(o=>e(o.chroma)).map(o=>t.tonic+o.aliases[0])}function Mo(n){const t=U(n),e=sn(t.chroma);return R().filter(o=>e(o.chroma)).map(o=>t.tonic+o.aliases[0])}var fo={getChord:Z,get:U,detect:Je,chordScales:uo,extended:lo,reduced:Mo,tokenize:ln,transpose:mo,chord:co};const Po=[[.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"]]],dn=[];Po.forEach(([n,t,e])=>$o(n,t,e));const po={empty:!0,name:"",value:0,fraction:[0,0],shorthand:"",dots:"",names:[]};function ho(){return dn.reduce((n,t)=>(t.names.forEach(e=>n.push(e)),n),[])}function yo(){return dn.map(n=>n.shorthand)}const go=/^([^.]+)(\.*)$/;function Tn(n){const[t,e,o]=go.exec(n)||[],r=dn.find(s=>s.shorthand===e||s.names.includes(e));if(!r)return po;const i=No(r.fraction,o.length),a=i[0]/i[1];return{...r,name:n,dots:o,value:a,fraction:i}}const bo=n=>Tn(n).value,Ao=n=>Tn(n).fraction;var vo={names:ho,shorthands:yo,get:Tn,value:bo,fraction:Ao};function $o(n,t,e){dn.push({empty:!1,dots:"",name:"",value:1/n,fraction:n<1?[1/n,1]:[1,n],shorthand:t,names:e})}function No(n,t){const e=Math.pow(2,t);let o=n[0]*e,r=n[1]*e;const i=o;for(let a=0;af(n).name,So=n=>f(n).semitones,To=n=>f(n).q,Vo=n=>f(n).num;function ft(n){const t=f(n);return t.empty?"":t.simple+t.q}function _o(n){const t=f(n);if(t.empty)return"";const e=(7-t.step)%7,o=t.type==="perfectable"?-t.alt:-(t.alt+1);return f({step:e,alt:o,oct:t.oct,dir:t.dir}).name}const Co=[1,2,2,3,3,4,5,5,6,6,7,7],wo="P m M m M P d P m M m M".split(" ");function xo(n){const t=n<0?-1:1,e=Math.abs(n),o=e%12,r=Math.floor(e/12);return t*(Co[o]+7*r)+wo[o]}const Eo=D,Pt=ht((n,t)=>[n[0]+t[0],n[1]+t[1]]),Do=n=>t=>Pt(n,t),ko=ht((n,t)=>[n[0]-t[0],n[1]-t[1]]);function pt(n,t){const e=Mt(n);if(e.empty)return"";const[o,r,i]=e.coord;return B([o+t,r,i]).name}var bn={names:Io,get:Mt,name:jo,num:Vo,semitones:So,quality:To,fromSemitones:xo,distance:Eo,invert:_o,simplify:ft,add:Pt,addTo:Do,substract:ko,transposeFifths:pt};function ht(n){return(t,e)=>{const o=f(t).coord,r=f(e).coord;if(o&&r){const i=n(o,r);return B(i).name}}}function yt(n){return+n>=0&&+n<=127}function gt(n){if(yt(n))return+n;const t=m(n);return t.empty?null:t.midi}function Ro(n,t=440){return Math.pow(2,(n-69)/12)*t}const Oo=Math.log(2),Fo=Math.log(440);function Vn(n){const t=12*(Math.log(n)-Fo)/Oo+69;return Math.round(t*100)/100}const zo="C C# D D# E F F# G G# A A# B".split(" "),qo="C Db D Eb E F Gb G Ab A Bb B".split(" ");function I(n,t={}){if(isNaN(n)||n===-1/0||n===1/0)return"";n=Math.round(n);const o=(t.sharps===!0?zo:qo)[n%12];if(t.pitchClass)return o;const r=Math.floor(n/12)-1;return o+r}var Go={isMidi:yt,toMidi:gt,midiToFreq:Ro,midiToNoteName:I,freqToMidi:Vn};const Bo=["C","D","E","F","G","A","B"],bt=n=>n.name,At=n=>n.map(m).filter(t=>!t.empty);function Ho(n){return n===void 0?Bo.slice():Array.isArray(n)?At(n).map(bt):[]}const y=m,Lo=n=>y(n).name,Uo=n=>y(n).pc,Xo=n=>y(n).acc,Ko=n=>y(n).oct,Qo=n=>y(n).midi,Yo=n=>y(n).freq,Zo=n=>y(n).chroma;function vt(n){return I(n)}function Jo(n){return I(Vn(n))}function Wo(n){return I(Vn(n),{sharps:!0})}function nr(n){return I(n,{sharps:!0})}const _n=P,tr=P,$t=n=>t=>_n(t,n),er=$t,Nt=n=>t=>_n(n,t),or=Nt;function nn(n,t){const e=y(n);if(e.empty)return"";const[o,r]=e.coord;return F(r===void 0?[o+t]:[o+t,r]).name}const rr=nn,Cn=(n,t)=>n.height-t.height,ir=(n,t)=>t.height-n.height;function It(n,t){return t=t||Cn,At(n).sort(t).map(bt)}function jt(n){return It(n,Cn).filter((t,e,o)=>e===0||t!==o[e-1])}const ar=n=>{const t=y(n);return t.empty?"":I(t.midi||t.chroma,{sharps:t.alt>0,pitchClass:t.midi===null})};function St(n,t){const e=y(n);if(e.empty)return"";const o=y(t||I(e.midi||e.chroma,{sharps:e.alt<0,pitchClass:!0}));if(o.empty||o.chroma!==e.chroma)return"";if(e.oct===void 0)return o.pc;const r=e.chroma-e.alt,i=o.chroma-o.alt,a=r>11||i<0?-1:r<0||i>11?1:0,s=e.oct+a;return o.pc+s}var w={names:Ho,get:y,name:Lo,pitchClass:Uo,accidentals:Xo,octave:Ko,midi:Qo,ascending:Cn,descending:ir,sortedNames:It,sortedUniqNames:jt,fromMidi:vt,fromMidiSharps:nr,freq:Yo,fromFreq:Jo,fromFreqSharps:Wo,chroma:Zo,transpose:_n,tr,transposeBy:$t,trBy:er,transposeFrom:Nt,trFrom:or,transposeFifths:nn,trFifths:rr,simplify:ar,enharmonic:St};const Tt={empty:!0,name:"",chordType:""},qn={};function $(n){return typeof n=="string"?qn[n]||(qn[n]=Mr(n)):typeof n=="number"?$(Mn[n]||""):q(n)?mr(n):z(n)?$(n.name):Tt}const sr=g("RomanNumeral.romanNumeral","RomanNumeral.get",$);function cr(n=!0){return(n?Mn:dr).slice()}function mr(n){return $(E(n.alt)+Mn[n.step])}const ur=/^(#{1,}|b{1,}|x{1,}|)(IV|I{1,3}|VI{0,2}|iv|i{1,3}|vi{0,2})([^IViv]*)$/;function lr(n){return ur.exec(n)||["","","",""]}const Vt="I II III IV V VI VII",Mn=Vt.split(" "),dr=Vt.toLowerCase().split(" ");function Mr(n){const[t,e,o,r]=lr(n);if(!o)return Tt;const i=o.toUpperCase(),a=Mn.indexOf(i),s=G(e),c=1;return{empty:!1,name:t,roman:o,interval:f({step:a,alt:s,dir:c}).name,acc:e,chordType:r,alt:s,step:a,major:o===i,oct:0,dir:c}}var fr={names:cr,get:$,romanNumeral:sr};const b=Object.freeze([]),_t={type:"major",tonic:"",alteration:0,keySignature:""},J={tonic:"",grades:b,intervals:b,scale:b,chords:b,chordsHarmonicFunction:b,chordScales:b},Pr={..._t,...J,type:"major",minorRelative:"",scale:b,secondaryDominants:b,secondaryDominantsMinorRelative:b,substituteDominants:b,substituteDominantsMinorRelative:b},pr={..._t,type:"minor",relativeMajor:"",natural:J,harmonic:J,melodic:J},Gn=(n,t,e="")=>t.map((o,r)=>`${n[r]}${e}${o}`);function fn(n,t,e,o){return r=>{const i=n.map(s=>$(s).interval||""),a=i.map(s=>P(r,s));return{tonic:r,grades:n,intervals:i,scale:a,chords:Gn(a,t),chordsHarmonicFunction:e.slice(),chordScales:Gn(a,o," ")}}}const Ct=(n,t)=>{const e=m(n),o=m(t);return e.empty||o.empty?0:o.coord[0]-e.coord[0]},hr=fn("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(",")),yr=fn("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(",")),gr=fn("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(",")),br=fn("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(","));function Ar(n){const t=m(n).pc;if(!t)return Pr;const e=hr(t),o=Ct("C",t),r=i=>{const a=$(i);return a.empty?"":P(n,a.interval)+a.chordType};return{...e,type:"major",minorRelative:P(t,"-3m"),alteration:o,keySignature:E(o),secondaryDominants:"- VI7 VII7 I7 II7 III7 -".split(" ").map(r),secondaryDominantsMinorRelative:"- IIIm7b5 IV#m7 Vm7 VIm7 VIIm7b5 -".split(" ").map(r),substituteDominants:"- bIII7 IV7 bV7 bVI7 bVII7 -".split(" ").map(r),substituteDominantsMinorRelative:"- IIIm7 Im7 IIbm7 VIm7 IVm7 -".split(" ").map(r)}}function vr(n){const t=m(n).pc;if(!t)return pr;const e=Ct("C",t)-3;return{type:"minor",tonic:t,relativeMajor:P(t,"3m"),alteration:e,keySignature:E(e),natural:yr(t),harmonic:gr(t),melodic:br(t)}}function $r(n){return typeof n=="number"?nn("C",n):typeof n=="string"&&/^b+|#+$/.test(n)?nn("C",G(n)):null}var Nr={majorKey:Ar,majorTonicFromKeySignature:$r,minorKey:vr};const wn=[[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"]],Bn={...T,name:"",alt:0,modeNum:NaN,triad:"",seventh:"",aliases:[]},xn=wn.map(Tr),An={};xn.forEach(n=>{An[n.name]=n,n.aliases.forEach(t=>{An[t]=n})});function V(n){return typeof n=="string"?An[n.toLowerCase()]||Bn:n&&n.name?V(n.name):Bn}const Ir=g("Mode.mode","Mode.get",V);function wt(){return xn.slice()}const jr=g("Mode.mode","Mode.all",wt);function Sr(){return xn.map(n=>n.name)}function Tr(n){const[t,e,o,r,i,a,s]=n,c=s?[s]:[],l=Number(e).toString(2);return{empty:!1,intervals:un(r).intervals,modeNum:t,chroma:l,normalized:l,name:r,setNum:e,alt:o,triad:i,seventh:a,aliases:c}}function Vr(n,t){return V(n).intervals.map(e=>P(t,e))}function xt(n){return(t,e)=>{const o=V(t);if(o.empty)return[];const r=H(o.modeNum,n),i=o.intervals.map(a=>P(e,a));return r.map((a,s)=>i[s]+a)}}const _r=xt(wn.map(n=>n[4])),Cr=xt(wn.map(n=>n[5]));function Et(n,t){const e=V(t),o=V(n);return e.empty||o.empty?"":ft(pt("1P",o.alt-e.alt))}function wr(n,t,e){return P(e,Et(n,t))}var xr={get:V,names:Sr,all:wt,distance:Et,relativeTonic:wr,notes:Vr,triads:_r,seventhChords:Cr,entries:jr,mode:Ir};function Er(n,t){return t.map($).map(o=>P(n,f(o))+o.chordType)}function Dr(n,t){return t.map(e=>{const[o,r]=ln(e),i=D(n,o);return $(f(i)).name+r})}var kr={fromRomanNumerals:Er,toRomanNumerals:Dr};function Dt(n){const t=Nn(n.map(gt));return!n.length||t.length!==n.length?[]:t.reduce((e,o)=>{const r=e[e.length-1];return e.concat(an(r,o).slice(1))},[t[0]])}function Rr(n,t){return Dt(n).map(e=>I(e,t))}var Or={numeric:Dt,chromatic:Rr};const Fr={empty:!0,name:"",type:"",tonic:null,setNum:NaN,chroma:"",normalized:"",aliases:[],notes:[],intervals:[]};function kt(n){if(typeof n!="string")return["",""];const t=n.indexOf(" "),e=m(n.substring(0,t));if(e.empty){const r=m(n);return r.empty?["",n]:[r.name,""]}const o=n.substring(e.name.length+1);return[e.name,o.length?o:""]}const zr=ut;function N(n){const t=Array.isArray(n)?n:kt(n),e=m(t[0]).name,o=un(t[1]);if(o.empty)return Fr;const r=o.name,i=e?o.intervals.map(s=>P(e,s)):[],a=e?e+" "+r:r;return{...o,name:a,type:r,tonic:e,notes:i}}const qr=g("Scale.scale","Scale.get",N);function Gr(n){const t=N(n),e=sn(t.chroma);return R().filter(o=>e(o.chroma)).map(o=>o.aliases[0])}function Br(n){const t=N(n),e=cn(t.chroma);return L().filter(o=>e(o.chroma)).map(o=>o.name)}function Hr(n){const t=sn(N(n).chroma);return L().filter(e=>t(e.chroma)).map(e=>e.name)}function Rt(n){const t=n.map(r=>m(r).pc).filter(r=>r),e=t[0],o=jt(t);return H(o.indexOf(e),o)}function Lr(n){const t=N(n);if(t.empty)return[];const e=t.tonic?t.notes:t.intervals;return jn(t.chroma).map((o,r)=>{const i=N(o).name;return i?[e[r],i]:["",""]}).filter(o=>o[0])}function Ur(n){const t=Array.isArray(n)?Rt(n):N(n).notes,e=t.map(o=>m(o).chroma);return o=>{const r=m(typeof o=="number"?vt(o):o),i=r.height;if(i===void 0)return;const a=i%12,s=e.indexOf(a);if(s!==-1)return St(r.name,t[s])}}function Xr(n){const t=Ur(n);return(e,o)=>{const r=m(e).height,i=m(o).height;return r===void 0||i===void 0?[]:an(r,i).map(t).filter(a=>a)}}var tn={get:N,names:zr,extended:Br,modeNames:Lr,reduced:Hr,scaleChords:Gr,scaleNotes:Rt,tokenize:kt,rangeOf:Xr,scale:qr};const Kr={empty:!0,name:"",upper:void 0,lower:void 0,type:void 0,additive:[]},Qr=["4/4","3/4","2/4","2/2","12/8","9/8","6/8","3/8"];function Yr(){return Qr.slice()}const Zr=/^(\d?\d(?:\+\d)*)\/(\d)$/,Hn=new Map;function Jr(n){const t=Hn.get(n);if(t)return t;const e=ni(En(n));return Hn.set(n,e),e}function En(n){if(typeof n=="string"){const[i,a,s]=Zr.exec(n)||[];return En([a,s])}const[t,e]=n,o=+e;if(typeof t=="number")return[t,o];const r=t.split("+").map(i=>+i);return r.length===1?[r[0],o]:[r,o]}var Wr={names:Yr,parse:En,get:Jr};function ni([n,t]){const e=Array.isArray(n)?n.reduce((s,c)=>s+c,0):n,o=t;if(e===0||o===0)return Kr;const r=Array.isArray(n)?`${n.join("+")}/${t}`:`${n}/${t}`,i=Array.isArray(n)?n:[],a=o===4||o===2?"simple":o===8&&e%3===0?"compound":"irregular";return{empty:!1,name:r,type:a,upper:e,lower:o,additive:i}}const ti=Wn,ei=st,oi=mt,ri=dt,ii=Object.freeze(Object.defineProperty({__proto__:null,Array:Ae,Core:Wn,ChordDictionary:oi,PcSet:ei,ScaleDictionary:ri,Tonal:ti,AbcNotation:Me,Chord:fo,ChordType:mt,Collection:Ie,DurationValue:vo,Interval:bn,Key:Nr,Midi:Go,Mode:xr,Note:w,Pcset:st,Progression:kr,Range:Or,RomanNumeral:fr,Scale:tn,ScaleType:dt,TimeSignature:Wr,accToAlt:G,altToAcc:E,coordToInterval:B,coordToNote:F,decode:on,deprecate:g,distance:D,encode:en,fillStr:C,interval:f,isNamed:z,isPitch:q,note:m,stepToLetter:vn,tokenizeInterval:$n,tokenizeNote:rn,transpose:P},Symbol.toStringTag,{value:"Module"}));function Ot(n,t,e){let[o,r]=tn.tokenize(n),{notes:i}=tn.get(`${o} ${r}`);if(i=i.map(h=>w.get(h).pc),t=Number(t),isNaN(t))throw new Error(`scale offset "${t}" not a number`);const{pc:a,oct:s=3}=w.get(e),c=i.indexOf(a);if(c===-1)throw new Error(`note "${e}" is not in scale "${n}"`);let l=c,u=s,d=a;const M=Math.sign(t);for(;Math.abs(l-c)0&&d[0]==="C"&&(u+=M)}return d+u}_.prototype._transpose=function(n){return this._withHap(t=>{const e=isNaN(Number(n))?String(n):bn.fromSemitones(n);if(typeof t.value=="number"){const o=typeof e=="string"?bn.semitones(e)||0:e;return t.withValue(()=>t.value+o)}return t.withValue(()=>w.simplify(w.transpose(t.value,e)))})};_.prototype._scaleTranspose=function(n){return this._withHap(t=>{if(!t.context.scale)throw new Error("can only use scaleTranspose after .scale");if(typeof t.value!="string")throw new Error("can only use scaleTranspose with notes");return t.withValue(()=>Ot(t.context.scale,Number(n),t.value))})};_.prototype._scale=function(n){return this._withHap(t=>{let e=t.value;const o=Number(e);if(!isNaN(o)){let[r,i]=tn.tokenize(n);const{pc:a,oct:s=3}=w.get(r);e=Ot(a+" "+i,o,a+s)}return t.withValue(()=>e).setContext({...t.context,scale:n})})};_.prototype.define("transpose",(n,t)=>t.transpose(n),{composable:!0,patternified:!0});_.prototype.define("scale",(n,t)=>t.scale(n),{composable:!0,patternified:!0});_.prototype.define("scaleTranspose",(n,t)=>t.scaleTranspose(n),{composable:!0,patternified:!0});var Ft={},hn={},X={};X.__esModule=!0;X.getBestVoicing=void 0;function ai(n){var t=n.chord,e=n.range,o=n.finder,r=n.picker,i=n.lastVoicing,a=o(t,e);return a.length?r(a,i):[]}X.getBestVoicing=ai;var O={};const zt=Ut(ii);var K={};K.__esModule=!0;K.tokenizeChord=void 0;function si(n){var t=(n||"").match(/^([A-G][b#]*)([^\/]*)[\/]?([A-G][b#]*)?$/);return t?t.slice(1):[]}K.tokenizeChord=si;var Ln;function ci(){if(Ln)return O;Ln=1,O.__esModule=!0,O.voicingsInRange=void 0;var n=zt,t=qt(),e=K;function o(r,i,a){i===void 0&&(i=t.lefthand),a===void 0&&(a=["D3","A4"]);var s=(0,e.tokenizeChord)(r),c=s[0],l=s[1];if(!i[l])return[];var u=i[l].map(function(M){return M.split(" ")}),d=n.Range.chromatic(a);return u.reduce(function(M,h){var A=h.map(function(v){return n.Interval.substract(v,h[0])}),Q=n.Note.transpose(c,h[0]),Gt=d.filter(function(v){return n.Note.chroma(v)===n.Note.chroma(Q)}).filter(function(v){return n.Note.midi(n.Note.transpose(v,A[A.length-1]))<=n.Note.midi(a[1])}).map(function(v){return n.Note.enharmonic(v,Q)}),Bt=Gt.map(function(v){return A.map(function(Ht){return n.Note.transpose(v,Ht)})});return M.concat(Bt)},[])}return O.voicingsInRange=o,O}var Un;function qt(){return Un||(Un=1,function(n){var t=Y&&Y.__assign||function(){return t=Object.assign||function(s){for(var c,l=1,u=arguments.length;lui({chord:n,dictionary:di,range:e,picker:li,lastVoicing:t}),x=_;x.prototype.fmapNested=function(n){return new x(t=>this.query(t).map(e=>Kt(n(e)).query(t).map(o=>new Qt(e.whole,e.part,o.value,o.context))).flat())};x.prototype.voicings=function(n){let t;return n!=null&&n.length||(n=["F3","A4"]),this.fmapNested(e=>(t=Mi(e.value,t,n),Yt(...t)._withContext(()=>({locations:e.context.locations||[]}))))};x.prototype._rootNotes=function(n=2){return this.fmap(t=>{const[e,o]=t.match(/^([a-gA-G][b#]?).*$/);return o+n})};x.prototype.define("voicings",(n,t)=>t.voicings(n),{composable:!0});x.prototype.define("rootNotes",(n,t)=>t.rootNotes(n),{composable:!0,patternified:!0}); +import{P as _,m as Lt,k as Ut,n as Y,o as Xt,q as Kt,H as Qt,t as Yt}from"./index.f88145a1.js";const C=(n,t)=>Array(Math.abs(t)+1).join(n);function g(n,t,e){return function(...o){return console.warn(`${n} is deprecated. Use ${t}.`),e.apply(this,o)}}function z(n){return n!==null&&typeof n=="object"&&typeof n.name=="string"}function q(n){return n!==null&&typeof n=="object"&&typeof n.step=="number"&&typeof n.alt=="number"}const Qn=[0,2,4,-1,1,3,5],Yn=Qn.map(n=>Math.floor(n*7/12));function en(n){const{step:t,alt:e,oct:o,dir:r=1}=n,i=Qn[t]+7*e;if(o===void 0)return[r*i];const a=o-Yn[t]-4*e;return[r*i,r*a]}const Zt=[3,0,4,1,5,2,6];function on(n){const[t,e,o]=n,r=Zt[Jt(t)],i=Math.floor((t+1)/7);if(e===void 0)return{step:r,alt:i,dir:o};const a=e+4*i+Yn[r];return{step:r,alt:i,oct:a,dir:o}}function Jt(n){const t=(n+1)%7;return t<0?7+t:t}const Zn={empty:!0,name:"",pc:"",acc:""},Dn=new Map,vn=n=>"CDEFGAB".charAt(n),E=n=>n<0?C("b",-n):C("#",n),G=n=>n[0]==="b"?-n.length:n.length;function m(n){const t=Dn.get(n);if(t)return t;const e=typeof n=="string"?te(n):q(n)?m(ee(n)):z(n)?m(n.name):Zn;return Dn.set(n,e),e}const Wt=/^([a-gA-G]?)(#{1,}|b{1,}|x{1,}|)(-?\d*)\s*(.*)$/;function rn(n){const t=Wt.exec(n);return[t[1].toUpperCase(),t[2].replace(/x/g,"##"),t[3],t[4]]}function F(n){return m(on(n))}const ne=(n,t)=>(n%t+t)%t,pn=[0,2,4,5,7,9,11];function te(n){const t=rn(n);if(t[0]===""||t[3]!=="")return Zn;const e=t[0],o=t[1],r=t[2],i=(e.charCodeAt(0)+3)%7,a=G(o),s=r.length?+r:void 0,c=en({step:i,alt:a,oct:s}),l=e+o+r,u=e+o,d=(pn[i]+a+120)%12,M=s===void 0?ne(pn[i]+a,12)-12*99:pn[i]+a+12*(s+1),h=M>=0&&M<=127?M:null,A=s===void 0?null:Math.pow(2,(M-69)/12)*440;return{empty:!1,acc:o,alt:a,chroma:d,coord:c,freq:A,height:M,letter:e,midi:h,name:l,oct:s,pc:u,step:i}}function ee(n){const{step:t,alt:e,oct:o}=n,r=vn(t);if(!r)return"";const i=r+E(e);return o||o===0?i+o:i}const yn={empty:!0,name:"",acc:""},oe="([-+]?\\d+)(d{1,4}|m|M|P|A{1,4})",re="(AA|A|P|M|m|d|dd)([-+]?\\d+)",ie=new RegExp("^"+oe+"|"+re+"$");function $n(n){const t=ie.exec(`${n}`);return t===null?["",""]:t[1]?[t[1],t[2]]:[t[4],t[3]]}const kn={};function f(n){return typeof n=="string"?kn[n]||(kn[n]=ae(n)):q(n)?f(ce(n)):z(n)?f(n.name):yn}const Rn=[0,2,4,5,7,9,11],Jn="PMMPPMM";function ae(n){const t=$n(n);if(t[0]==="")return yn;const e=+t[0],o=t[1],r=(Math.abs(e)-1)%7,i=Jn[r];if(i==="M"&&o==="P")return yn;const a=i==="M"?"majorable":"perfectable",s=""+e+o,c=e<0?-1:1,l=e===8||e===-8?e:c*(r+1),u=se(a,o),d=Math.floor((Math.abs(e)-1)/7),M=c*(Rn[r]+u+12*d),h=(c*(Rn[r]+u)%12+12)%12,A=en({step:r,alt:u,oct:d,dir:c});return{empty:!1,name:s,num:e,q:o,step:r,alt:u,dir:c,type:a,simple:l,semitones:M,chroma:h,coord:A,oct:d}}function B(n,t){const[e,o=0]=n,r=e*7+o*12<0,i=t||r?[-e,-o,-1]:[e,o,1];return f(on(i))}function se(n,t){return t==="M"&&n==="majorable"||t==="P"&&n==="perfectable"?0:t==="m"&&n==="majorable"?-1:/^A+$/.test(t)?t.length:/^d+$/.test(t)?-1*(n==="perfectable"?t.length:t.length+1):0}function ce(n){const{step:t,alt:e,oct:o=0,dir:r}=n;if(!r)return"";const i=t+1+7*o,a=i===0?t+1:i,s=r<0?"-":"",c=Jn[t]==="M"?"majorable":"perfectable";return s+a+me(c,e)}function me(n,t){return t===0?n==="majorable"?"M":"P":t===-1&&n==="majorable"?"m":t>0?C("A",t):C("d",n==="perfectable"?t:t+1)}function P(n,t){const e=m(n),o=f(t);if(e.empty||o.empty)return"";const r=e.coord,i=o.coord,a=r.length===1?[r[0]+i[0]]:[r[0]+i[0],r[1]+i[1]];return F(a).name}function D(n,t){const e=m(n),o=m(t);if(e.empty||o.empty)return"";const r=e.coord,i=o.coord,a=i[0]-r[0],s=r.length===2&&i.length===2?i[1]-r[1]:-Math.floor(a*7/12),c=o.height===e.height&&o.midi!==null&&e.midi!==null&&e.step>o.step;return B([a,s],c).name}const Wn=Object.freeze(Object.defineProperty({__proto__:null,accToAlt:G,altToAcc:E,coordToInterval:B,coordToNote:F,decode:on,deprecate:g,distance:D,encode:en,fillStr:C,interval:f,isNamed:z,isPitch:q,note:m,stepToLetter:vn,tokenizeInterval:$n,tokenizeNote:rn,transpose:P},Symbol.toStringTag,{value:"Module"})),On=(n,t)=>Array(t+1).join(n),ue=/^(_{1,}|=|\^{1,}|)([abcdefgABCDEFG])([,']*)$/;function nt(n){const t=ue.exec(n);return t?[t[1],t[2],t[3]]:["","",""]}function W(n){const[t,e,o]=nt(n);if(e==="")return"";let r=4;for(let a=0;a96?e.toUpperCase()+i+(r+1):e+i+r}function tt(n){const t=m(n);if(t.empty||!t.oct&&t.oct!==0)return"";const{letter:e,acc:o,oct:r}=t,i=o[0]==="b"?o.replace(/b/g,"_"):o.replace(/#/g,"^"),a=r>4?e.toLowerCase():e,s=r===5?"":r>4?On("'",r-5):On(",",4-r);return i+a+s}function le(n,t){return tt(P(W(n),t))}function de(n,t){return D(W(n),W(t))}var Me={abcToScientificNotation:W,scientificToAbcNotation:tt,tokenize:nt,transpose:le,distance:de};function fe(n,t){const e=[];for(;t--;e[t]=t+n);return e}function Pe(n,t){const e=[];for(;t--;e[t]=n-t);return e}function pe(n,t){return nt===0||t)}function et(n){return n.map(e=>m(e)).filter(e=>!e.empty).sort((e,o)=>e.height-o.height).map(e=>e.name)}function ge(n){return et(n).filter((t,e,o)=>e===0||t!==o[e-1])}function be(n,t=Math.random){let e,o,r=n.length;for(;r;)e=Math.floor(t()*r--),o=n[r],n[r]=n[e],n[e]=o;return n}function ot(n){return n.length===0?[[]]:ot(n.slice(1)).reduce((t,e)=>t.concat(n.map((o,r)=>{const i=e.slice();return i.splice(r,0,n[0]),i})),[])}const Ae=Object.freeze(Object.defineProperty({__proto__:null,compact:ye,permutations:ot,range:pe,rotate:he,shuffle:be,sortedNoteNames:et,sortedUniqNoteNames:ge},Symbol.toStringTag,{value:"Module"}));function ve(n,t){const e=[];for(;t--;e[t]=t+n);return e}function $e(n,t){const e=[];for(;t--;e[t]=n-t);return e}function an(n,t){return nt===0||t)}function Ne(n,t=Math.random){let e,o,r=n.length;for(;r;)e=Math.floor(t()*r--),o=n[r],n[r]=n[e],n[e]=o;return n}function rt(n){return n.length===0?[[]]:rt(n.slice(1)).reduce((t,e)=>t.concat(n.map((o,r)=>{const i=e.slice();return i.splice(r,0,n[0]),i})),[])}var Ie={compact:Nn,permutations:rt,range:an,rotate:H,shuffle:Ne};const T={empty:!0,name:"",setNum:0,chroma:"000000000000",normalized:"000000000000",intervals:[]},In=n=>Number(n).toString(2),Fn=n=>parseInt(n,2),je=/^[01]{12}$/;function it(n){return je.test(n)}const Se=n=>typeof n=="number"&&n>=0&&n<=4095,Te=n=>n&&it(n.chroma),zn={[T.chroma]:T};function p(n){const t=it(n)?n:Se(n)?In(n):Array.isArray(n)?ze(n):Te(n)?n.chroma:T.chroma;return zn[t]=zn[t]||Fe(t)}const Ve=g("Pcset.pcset","Pcset.get",p),_e=n=>p(n).chroma,Ce=n=>p(n).intervals,we=n=>p(n).setNum,xe=["1P","2m","2M","3m","3M","4P","5d","5P","6m","6M","7m","7M"];function Ee(n){const t=[];for(let e=0;e<12;e++)n.charAt(e)==="1"&&t.push(xe[e]);return t}function De(){return an(2048,4095).map(In)}function jn(n,t=!0){const o=p(n).chroma.split("");return Nn(o.map((r,i)=>{const a=H(i,o);return t&&a[0]==="0"?null:a.join("")}))}function ke(n,t){return p(n).setNum===p(t).setNum}function sn(n){const t=p(n).setNum;return e=>{const o=p(e).setNum;return t&&t!==o&&(o&t)===o}}function cn(n){const t=p(n).setNum;return e=>{const o=p(e).setNum;return t&&t!==o&&(o|t)===o}}function at(n){const t=p(n);return e=>{const o=m(e);return t&&!o.empty&&t.chroma.charAt(o.chroma)==="1"}}function Re(n){const t=at(n);return e=>e.filter(t)}var st={get:p,chroma:_e,num:we,intervals:Ce,chromas:De,isSupersetOf:cn,isSubsetOf:sn,isNoteIncludedIn:at,isEqual:ke,filter:Re,modes:jn,pcset:Ve};function Oe(n){const t=n.split("");return t.map((e,o)=>H(o,t).join(""))}function Fe(n){const t=Fn(n),e=Oe(n).map(Fn).filter(i=>i>=2048).sort()[0],o=In(e),r=Ee(n);return{empty:!1,name:"",setNum:t,chroma:n,normalized:o,intervals:r}}function ze(n){if(n.length===0)return T.chroma;let t;const e=[0,0,0,0,0,0,0,0,0,0,0,0];for(let o=0;on.name).filter(n=>n)}function Le(){return k.map(n=>n.aliases[0]).filter(n=>n)}function Ue(){return Object.keys(j)}function R(){return k.slice()}const Xe=g("ChordType.entries","ChordType.all",R);function Ke(){k=[],j={}}function ct(n,t,e){const o=Ye(n),r={...p(n),name:e||"",quality:o,intervals:n,aliases:t};k.push(r),r.name&&(j[r.name]=r),j[r.setNum]=r,j[r.chroma]=r,r.aliases.forEach(i=>Qe(r,i))}function Qe(n,t){j[t]=n}function Ye(n){const t=e=>n.indexOf(e)!==-1;return t("5A")?"Augmented":t("3M")?"Major":t("5d")?"Diminished":t("3m")?"Minor":"Unknown"}qe.forEach(([n,t,e])=>ct(n.split(" "),e.split(" "),t));k.sort((n,t)=>n.setNum-t.setNum);var mt={names:He,symbols:Le,get:Sn,all:R,add:ct,removeAll:Ke,keys:Ue,entries:Xe,chordType:Be};const Ze=n=>{const t=n.reduce((e,o)=>{const r=m(o).chroma;return r!==void 0&&(e[r]=e[r]||m(o).name),e},{});return e=>t[e]};function Je(n){const t=n.map(o=>m(o).pc).filter(o=>o);return m.length===0?[]:We(t,1).filter(o=>o.weight).sort((o,r)=>r.weight-o.weight).map(o=>o.name)}function We(n,t){const e=n[0],o=m(e).chroma,r=Ze(n),i=jn(n,!1),a=[];return i.forEach((s,c)=>{R().filter(u=>u.chroma===s).forEach(u=>{const d=u.aliases[0],M=r(c);c!==o?a.push({weight:.5*t,name:`${M}${d}/${e}`}):a.push({weight:1*t,name:`${M}${d}`})})}),a}const no=[["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"]],to={...T,intervals:[],aliases:[]};let mn=[],S={};function ut(){return mn.map(n=>n.name)}function un(n){return S[n]||to}const eo=g("ScaleDictionary.scaleType","ScaleType.get",un);function L(){return mn.slice()}const oo=g("ScaleDictionary.entries","ScaleType.all",L);function ro(){return Object.keys(S)}function io(){mn=[],S={}}function lt(n,t,e=[]){const o={...p(n),name:t,intervals:n,aliases:e};return mn.push(o),S[o.name]=o,S[o.setNum]=o,S[o.chroma]=o,o.aliases.forEach(r=>ao(o,r)),o}function ao(n,t){S[t]=n}no.forEach(([n,t,...e])=>lt(n.split(" "),t,e));var dt={names:ut,get:un,all:L,add:lt,removeAll:io,keys:ro,entries:oo,scaleType:eo};const gn={empty:!0,name:"",symbol:"",root:"",rootDegree:0,type:"",tonic:null,setNum:NaN,quality:"Unknown",chroma:"",normalized:"",aliases:[],notes:[],intervals:[]},so=/^(6|64|7|9|11|13)$/;function ln(n){const[t,e,o,r]=rn(n);return t===""?["",n]:t==="A"&&r==="ug"?["","aug"]:!r&&(o==="4"||o==="5")?[t+e,o]:so.test(o)?[t+e,o+r]:[t+e+o,r]}function U(n){if(n==="")return gn;if(Array.isArray(n)&&n.length===2)return Z(n[1],n[0]);{const[t,e]=ln(n),o=Z(e,t);return o.empty?Z(n):o}}function Z(n,t,e){const o=Sn(n),r=m(t||""),i=m(e||"");if(o.empty||t&&r.empty||e&&i.empty)return gn;const a=D(r.pc,i.pc),s=o.intervals.indexOf(a)+1;if(!i.empty&&!s)return gn;const c=Array.from(o.intervals);for(let M=1;MP(r,M));n=o.aliases.indexOf(n)!==-1?n:o.aliases[0];const u=`${r.empty?"":r.pc}${n}${i.empty||s<=1?"":"/"+i.pc}`,d=`${t?r.pc+" ":""}${o.name}${s>1&&e?" over "+i.pc:""}`;return{...o,name:d,symbol:u,type:o.name,root:i.name,intervals:c,rootDegree:s,tonic:r.name,notes:l}}const co=g("Chord.chord","Chord.get",U);function mo(n,t){const[e,o]=ln(n);return e?P(e,t)+o:n}function uo(n){const t=U(n),e=cn(t.chroma);return L().filter(o=>e(o.chroma)).map(o=>o.name)}function lo(n){const t=U(n),e=cn(t.chroma);return R().filter(o=>e(o.chroma)).map(o=>t.tonic+o.aliases[0])}function Mo(n){const t=U(n),e=sn(t.chroma);return R().filter(o=>e(o.chroma)).map(o=>t.tonic+o.aliases[0])}var fo={getChord:Z,get:U,detect:Je,chordScales:uo,extended:lo,reduced:Mo,tokenize:ln,transpose:mo,chord:co};const Po=[[.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"]]],dn=[];Po.forEach(([n,t,e])=>$o(n,t,e));const po={empty:!0,name:"",value:0,fraction:[0,0],shorthand:"",dots:"",names:[]};function ho(){return dn.reduce((n,t)=>(t.names.forEach(e=>n.push(e)),n),[])}function yo(){return dn.map(n=>n.shorthand)}const go=/^([^.]+)(\.*)$/;function Tn(n){const[t,e,o]=go.exec(n)||[],r=dn.find(s=>s.shorthand===e||s.names.includes(e));if(!r)return po;const i=No(r.fraction,o.length),a=i[0]/i[1];return{...r,name:n,dots:o,value:a,fraction:i}}const bo=n=>Tn(n).value,Ao=n=>Tn(n).fraction;var vo={names:ho,shorthands:yo,get:Tn,value:bo,fraction:Ao};function $o(n,t,e){dn.push({empty:!1,dots:"",name:"",value:1/n,fraction:n<1?[1/n,1]:[1,n],shorthand:t,names:e})}function No(n,t){const e=Math.pow(2,t);let o=n[0]*e,r=n[1]*e;const i=o;for(let a=0;af(n).name,So=n=>f(n).semitones,To=n=>f(n).q,Vo=n=>f(n).num;function ft(n){const t=f(n);return t.empty?"":t.simple+t.q}function _o(n){const t=f(n);if(t.empty)return"";const e=(7-t.step)%7,o=t.type==="perfectable"?-t.alt:-(t.alt+1);return f({step:e,alt:o,oct:t.oct,dir:t.dir}).name}const Co=[1,2,2,3,3,4,5,5,6,6,7,7],wo="P m M m M P d P m M m M".split(" ");function xo(n){const t=n<0?-1:1,e=Math.abs(n),o=e%12,r=Math.floor(e/12);return t*(Co[o]+7*r)+wo[o]}const Eo=D,Pt=ht((n,t)=>[n[0]+t[0],n[1]+t[1]]),Do=n=>t=>Pt(n,t),ko=ht((n,t)=>[n[0]-t[0],n[1]-t[1]]);function pt(n,t){const e=Mt(n);if(e.empty)return"";const[o,r,i]=e.coord;return B([o+t,r,i]).name}var bn={names:Io,get:Mt,name:jo,num:Vo,semitones:So,quality:To,fromSemitones:xo,distance:Eo,invert:_o,simplify:ft,add:Pt,addTo:Do,substract:ko,transposeFifths:pt};function ht(n){return(t,e)=>{const o=f(t).coord,r=f(e).coord;if(o&&r){const i=n(o,r);return B(i).name}}}function yt(n){return+n>=0&&+n<=127}function gt(n){if(yt(n))return+n;const t=m(n);return t.empty?null:t.midi}function Ro(n,t=440){return Math.pow(2,(n-69)/12)*t}const Oo=Math.log(2),Fo=Math.log(440);function Vn(n){const t=12*(Math.log(n)-Fo)/Oo+69;return Math.round(t*100)/100}const zo="C C# D D# E F F# G G# A A# B".split(" "),qo="C Db D Eb E F Gb G Ab A Bb B".split(" ");function I(n,t={}){if(isNaN(n)||n===-1/0||n===1/0)return"";n=Math.round(n);const o=(t.sharps===!0?zo:qo)[n%12];if(t.pitchClass)return o;const r=Math.floor(n/12)-1;return o+r}var Go={isMidi:yt,toMidi:gt,midiToFreq:Ro,midiToNoteName:I,freqToMidi:Vn};const Bo=["C","D","E","F","G","A","B"],bt=n=>n.name,At=n=>n.map(m).filter(t=>!t.empty);function Ho(n){return n===void 0?Bo.slice():Array.isArray(n)?At(n).map(bt):[]}const y=m,Lo=n=>y(n).name,Uo=n=>y(n).pc,Xo=n=>y(n).acc,Ko=n=>y(n).oct,Qo=n=>y(n).midi,Yo=n=>y(n).freq,Zo=n=>y(n).chroma;function vt(n){return I(n)}function Jo(n){return I(Vn(n))}function Wo(n){return I(Vn(n),{sharps:!0})}function nr(n){return I(n,{sharps:!0})}const _n=P,tr=P,$t=n=>t=>_n(t,n),er=$t,Nt=n=>t=>_n(n,t),or=Nt;function nn(n,t){const e=y(n);if(e.empty)return"";const[o,r]=e.coord;return F(r===void 0?[o+t]:[o+t,r]).name}const rr=nn,Cn=(n,t)=>n.height-t.height,ir=(n,t)=>t.height-n.height;function It(n,t){return t=t||Cn,At(n).sort(t).map(bt)}function jt(n){return It(n,Cn).filter((t,e,o)=>e===0||t!==o[e-1])}const ar=n=>{const t=y(n);return t.empty?"":I(t.midi||t.chroma,{sharps:t.alt>0,pitchClass:t.midi===null})};function St(n,t){const e=y(n);if(e.empty)return"";const o=y(t||I(e.midi||e.chroma,{sharps:e.alt<0,pitchClass:!0}));if(o.empty||o.chroma!==e.chroma)return"";if(e.oct===void 0)return o.pc;const r=e.chroma-e.alt,i=o.chroma-o.alt,a=r>11||i<0?-1:r<0||i>11?1:0,s=e.oct+a;return o.pc+s}var w={names:Ho,get:y,name:Lo,pitchClass:Uo,accidentals:Xo,octave:Ko,midi:Qo,ascending:Cn,descending:ir,sortedNames:It,sortedUniqNames:jt,fromMidi:vt,fromMidiSharps:nr,freq:Yo,fromFreq:Jo,fromFreqSharps:Wo,chroma:Zo,transpose:_n,tr,transposeBy:$t,trBy:er,transposeFrom:Nt,trFrom:or,transposeFifths:nn,trFifths:rr,simplify:ar,enharmonic:St};const Tt={empty:!0,name:"",chordType:""},qn={};function $(n){return typeof n=="string"?qn[n]||(qn[n]=Mr(n)):typeof n=="number"?$(Mn[n]||""):q(n)?mr(n):z(n)?$(n.name):Tt}const sr=g("RomanNumeral.romanNumeral","RomanNumeral.get",$);function cr(n=!0){return(n?Mn:dr).slice()}function mr(n){return $(E(n.alt)+Mn[n.step])}const ur=/^(#{1,}|b{1,}|x{1,}|)(IV|I{1,3}|VI{0,2}|iv|i{1,3}|vi{0,2})([^IViv]*)$/;function lr(n){return ur.exec(n)||["","","",""]}const Vt="I II III IV V VI VII",Mn=Vt.split(" "),dr=Vt.toLowerCase().split(" ");function Mr(n){const[t,e,o,r]=lr(n);if(!o)return Tt;const i=o.toUpperCase(),a=Mn.indexOf(i),s=G(e),c=1;return{empty:!1,name:t,roman:o,interval:f({step:a,alt:s,dir:c}).name,acc:e,chordType:r,alt:s,step:a,major:o===i,oct:0,dir:c}}var fr={names:cr,get:$,romanNumeral:sr};const b=Object.freeze([]),_t={type:"major",tonic:"",alteration:0,keySignature:""},J={tonic:"",grades:b,intervals:b,scale:b,chords:b,chordsHarmonicFunction:b,chordScales:b},Pr={..._t,...J,type:"major",minorRelative:"",scale:b,secondaryDominants:b,secondaryDominantsMinorRelative:b,substituteDominants:b,substituteDominantsMinorRelative:b},pr={..._t,type:"minor",relativeMajor:"",natural:J,harmonic:J,melodic:J},Gn=(n,t,e="")=>t.map((o,r)=>`${n[r]}${e}${o}`);function fn(n,t,e,o){return r=>{const i=n.map(s=>$(s).interval||""),a=i.map(s=>P(r,s));return{tonic:r,grades:n,intervals:i,scale:a,chords:Gn(a,t),chordsHarmonicFunction:e.slice(),chordScales:Gn(a,o," ")}}}const Ct=(n,t)=>{const e=m(n),o=m(t);return e.empty||o.empty?0:o.coord[0]-e.coord[0]},hr=fn("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(",")),yr=fn("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(",")),gr=fn("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(",")),br=fn("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(","));function Ar(n){const t=m(n).pc;if(!t)return Pr;const e=hr(t),o=Ct("C",t),r=i=>{const a=$(i);return a.empty?"":P(n,a.interval)+a.chordType};return{...e,type:"major",minorRelative:P(t,"-3m"),alteration:o,keySignature:E(o),secondaryDominants:"- VI7 VII7 I7 II7 III7 -".split(" ").map(r),secondaryDominantsMinorRelative:"- IIIm7b5 IV#m7 Vm7 VIm7 VIIm7b5 -".split(" ").map(r),substituteDominants:"- bIII7 IV7 bV7 bVI7 bVII7 -".split(" ").map(r),substituteDominantsMinorRelative:"- IIIm7 Im7 IIbm7 VIm7 IVm7 -".split(" ").map(r)}}function vr(n){const t=m(n).pc;if(!t)return pr;const e=Ct("C",t)-3;return{type:"minor",tonic:t,relativeMajor:P(t,"3m"),alteration:e,keySignature:E(e),natural:yr(t),harmonic:gr(t),melodic:br(t)}}function $r(n){return typeof n=="number"?nn("C",n):typeof n=="string"&&/^b+|#+$/.test(n)?nn("C",G(n)):null}var Nr={majorKey:Ar,majorTonicFromKeySignature:$r,minorKey:vr};const wn=[[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"]],Bn={...T,name:"",alt:0,modeNum:NaN,triad:"",seventh:"",aliases:[]},xn=wn.map(Tr),An={};xn.forEach(n=>{An[n.name]=n,n.aliases.forEach(t=>{An[t]=n})});function V(n){return typeof n=="string"?An[n.toLowerCase()]||Bn:n&&n.name?V(n.name):Bn}const Ir=g("Mode.mode","Mode.get",V);function wt(){return xn.slice()}const jr=g("Mode.mode","Mode.all",wt);function Sr(){return xn.map(n=>n.name)}function Tr(n){const[t,e,o,r,i,a,s]=n,c=s?[s]:[],l=Number(e).toString(2);return{empty:!1,intervals:un(r).intervals,modeNum:t,chroma:l,normalized:l,name:r,setNum:e,alt:o,triad:i,seventh:a,aliases:c}}function Vr(n,t){return V(n).intervals.map(e=>P(t,e))}function xt(n){return(t,e)=>{const o=V(t);if(o.empty)return[];const r=H(o.modeNum,n),i=o.intervals.map(a=>P(e,a));return r.map((a,s)=>i[s]+a)}}const _r=xt(wn.map(n=>n[4])),Cr=xt(wn.map(n=>n[5]));function Et(n,t){const e=V(t),o=V(n);return e.empty||o.empty?"":ft(pt("1P",o.alt-e.alt))}function wr(n,t,e){return P(e,Et(n,t))}var xr={get:V,names:Sr,all:wt,distance:Et,relativeTonic:wr,notes:Vr,triads:_r,seventhChords:Cr,entries:jr,mode:Ir};function Er(n,t){return t.map($).map(o=>P(n,f(o))+o.chordType)}function Dr(n,t){return t.map(e=>{const[o,r]=ln(e),i=D(n,o);return $(f(i)).name+r})}var kr={fromRomanNumerals:Er,toRomanNumerals:Dr};function Dt(n){const t=Nn(n.map(gt));return!n.length||t.length!==n.length?[]:t.reduce((e,o)=>{const r=e[e.length-1];return e.concat(an(r,o).slice(1))},[t[0]])}function Rr(n,t){return Dt(n).map(e=>I(e,t))}var Or={numeric:Dt,chromatic:Rr};const Fr={empty:!0,name:"",type:"",tonic:null,setNum:NaN,chroma:"",normalized:"",aliases:[],notes:[],intervals:[]};function kt(n){if(typeof n!="string")return["",""];const t=n.indexOf(" "),e=m(n.substring(0,t));if(e.empty){const r=m(n);return r.empty?["",n]:[r.name,""]}const o=n.substring(e.name.length+1);return[e.name,o.length?o:""]}const zr=ut;function N(n){const t=Array.isArray(n)?n:kt(n),e=m(t[0]).name,o=un(t[1]);if(o.empty)return Fr;const r=o.name,i=e?o.intervals.map(s=>P(e,s)):[],a=e?e+" "+r:r;return{...o,name:a,type:r,tonic:e,notes:i}}const qr=g("Scale.scale","Scale.get",N);function Gr(n){const t=N(n),e=sn(t.chroma);return R().filter(o=>e(o.chroma)).map(o=>o.aliases[0])}function Br(n){const t=N(n),e=cn(t.chroma);return L().filter(o=>e(o.chroma)).map(o=>o.name)}function Hr(n){const t=sn(N(n).chroma);return L().filter(e=>t(e.chroma)).map(e=>e.name)}function Rt(n){const t=n.map(r=>m(r).pc).filter(r=>r),e=t[0],o=jt(t);return H(o.indexOf(e),o)}function Lr(n){const t=N(n);if(t.empty)return[];const e=t.tonic?t.notes:t.intervals;return jn(t.chroma).map((o,r)=>{const i=N(o).name;return i?[e[r],i]:["",""]}).filter(o=>o[0])}function Ur(n){const t=Array.isArray(n)?Rt(n):N(n).notes,e=t.map(o=>m(o).chroma);return o=>{const r=m(typeof o=="number"?vt(o):o),i=r.height;if(i===void 0)return;const a=i%12,s=e.indexOf(a);if(s!==-1)return St(r.name,t[s])}}function Xr(n){const t=Ur(n);return(e,o)=>{const r=m(e).height,i=m(o).height;return r===void 0||i===void 0?[]:an(r,i).map(t).filter(a=>a)}}var tn={get:N,names:zr,extended:Br,modeNames:Lr,reduced:Hr,scaleChords:Gr,scaleNotes:Rt,tokenize:kt,rangeOf:Xr,scale:qr};const Kr={empty:!0,name:"",upper:void 0,lower:void 0,type:void 0,additive:[]},Qr=["4/4","3/4","2/4","2/2","12/8","9/8","6/8","3/8"];function Yr(){return Qr.slice()}const Zr=/^(\d?\d(?:\+\d)*)\/(\d)$/,Hn=new Map;function Jr(n){const t=Hn.get(n);if(t)return t;const e=ni(En(n));return Hn.set(n,e),e}function En(n){if(typeof n=="string"){const[i,a,s]=Zr.exec(n)||[];return En([a,s])}const[t,e]=n,o=+e;if(typeof t=="number")return[t,o];const r=t.split("+").map(i=>+i);return r.length===1?[r[0],o]:[r,o]}var Wr={names:Yr,parse:En,get:Jr};function ni([n,t]){const e=Array.isArray(n)?n.reduce((s,c)=>s+c,0):n,o=t;if(e===0||o===0)return Kr;const r=Array.isArray(n)?`${n.join("+")}/${t}`:`${n}/${t}`,i=Array.isArray(n)?n:[],a=o===4||o===2?"simple":o===8&&e%3===0?"compound":"irregular";return{empty:!1,name:r,type:a,upper:e,lower:o,additive:i}}const ti=Wn,ei=st,oi=mt,ri=dt,ii=Object.freeze(Object.defineProperty({__proto__:null,Array:Ae,Core:Wn,ChordDictionary:oi,PcSet:ei,ScaleDictionary:ri,Tonal:ti,AbcNotation:Me,Chord:fo,ChordType:mt,Collection:Ie,DurationValue:vo,Interval:bn,Key:Nr,Midi:Go,Mode:xr,Note:w,Pcset:st,Progression:kr,Range:Or,RomanNumeral:fr,Scale:tn,ScaleType:dt,TimeSignature:Wr,accToAlt:G,altToAcc:E,coordToInterval:B,coordToNote:F,decode:on,deprecate:g,distance:D,encode:en,fillStr:C,interval:f,isNamed:z,isPitch:q,note:m,stepToLetter:vn,tokenizeInterval:$n,tokenizeNote:rn,transpose:P},Symbol.toStringTag,{value:"Module"}));function Ot(n,t,e){let[o,r]=tn.tokenize(n),{notes:i}=tn.get(`${o} ${r}`);if(i=i.map(h=>w.get(h).pc),t=Number(t),isNaN(t))throw new Error(`scale offset "${t}" not a number`);const{pc:a,oct:s=3}=w.get(e),c=i.indexOf(a);if(c===-1)throw new Error(`note "${e}" is not in scale "${n}"`);let l=c,u=s,d=a;const M=Math.sign(t);for(;Math.abs(l-c)0&&d[0]==="C"&&(u+=M)}return d+u}_.prototype._transpose=function(n){return this._withHap(t=>{const e=isNaN(Number(n))?String(n):bn.fromSemitones(n);if(typeof t.value=="number"){const o=typeof e=="string"?bn.semitones(e)||0:e;return t.withValue(()=>t.value+o)}return t.withValue(()=>w.simplify(w.transpose(t.value,e)))})};_.prototype._scaleTranspose=function(n){return this._withHap(t=>{if(!t.context.scale)throw new Error("can only use scaleTranspose after .scale");if(typeof t.value!="string")throw new Error("can only use scaleTranspose with notes");return t.withValue(()=>Ot(t.context.scale,Number(n),t.value))})};_.prototype._scale=function(n){return this._withHap(t=>{let e=t.value;const o=Number(e);if(!isNaN(o)){let[r,i]=tn.tokenize(n);const{pc:a,oct:s=3}=w.get(r);e=Ot(a+" "+i,o,a+s)}return t.withValue(()=>e).setContext({...t.context,scale:n})})};_.prototype.define("transpose",(n,t)=>t.transpose(n),{composable:!0,patternified:!0});_.prototype.define("scale",(n,t)=>t.scale(n),{composable:!0,patternified:!0});_.prototype.define("scaleTranspose",(n,t)=>t.scaleTranspose(n),{composable:!0,patternified:!0});var Ft={},hn={},X={};X.__esModule=!0;X.getBestVoicing=void 0;function ai(n){var t=n.chord,e=n.range,o=n.finder,r=n.picker,i=n.lastVoicing,a=o(t,e);return a.length?r(a,i):[]}X.getBestVoicing=ai;var O={};const zt=Ut(ii);var K={};K.__esModule=!0;K.tokenizeChord=void 0;function si(n){var t=(n||"").match(/^([A-G][b#]*)([^\/]*)[\/]?([A-G][b#]*)?$/);return t?t.slice(1):[]}K.tokenizeChord=si;var Ln;function ci(){if(Ln)return O;Ln=1,O.__esModule=!0,O.voicingsInRange=void 0;var n=zt,t=qt(),e=K;function o(r,i,a){i===void 0&&(i=t.lefthand),a===void 0&&(a=["D3","A4"]);var s=(0,e.tokenizeChord)(r),c=s[0],l=s[1];if(!i[l])return[];var u=i[l].map(function(M){return M.split(" ")}),d=n.Range.chromatic(a);return u.reduce(function(M,h){var A=h.map(function(v){return n.Interval.substract(v,h[0])}),Q=n.Note.transpose(c,h[0]),Gt=d.filter(function(v){return n.Note.chroma(v)===n.Note.chroma(Q)}).filter(function(v){return n.Note.midi(n.Note.transpose(v,A[A.length-1]))<=n.Note.midi(a[1])}).map(function(v){return n.Note.enharmonic(v,Q)}),Bt=Gt.map(function(v){return A.map(function(Ht){return n.Note.transpose(v,Ht)})});return M.concat(Bt)},[])}return O.voicingsInRange=o,O}var Un;function qt(){return Un||(Un=1,function(n){var t=Y&&Y.__assign||function(){return t=Object.assign||function(s){for(var c,l=1,u=arguments.length;lui({chord:n,dictionary:di,range:e,picker:li,lastVoicing:t}),x=_;x.prototype.fmapNested=function(n){return new x(t=>this.query(t).map(e=>Kt(n(e)).query(t).map(o=>new Qt(e.whole,e.part,o.value,o.context))).flat())};x.prototype.voicings=function(n){let t;return n!=null&&n.length||(n=["F3","A4"]),this.fmapNested(e=>(t=Mi(e.value,t,n),Yt(...t)._withContext(()=>({locations:e.context.locations||[]}))))};x.prototype._rootNotes=function(n=2){return this.fmap(t=>{const[e,o]=t.match(/^([a-gA-G][b#]?).*$/);return o+n})};x.prototype.define("voicings",(n,t)=>t.voicings(n),{composable:!0});x.prototype.define("rootNotes",(n,t)=>t.rootNotes(n),{composable:!0,patternified:!0}); diff --git a/packages/core/examples/vite-vanilla-repl/dist/assets/index.865535e6.js b/packages/core/examples/vite-vanilla-repl/dist/assets/index.b66fb637.js similarity index 82% rename from packages/core/examples/vite-vanilla-repl/dist/assets/index.865535e6.js rename to packages/core/examples/vite-vanilla-repl/dist/assets/index.b66fb637.js index 984c8581..3e89ede1 100644 --- a/packages/core/examples/vite-vanilla-repl/dist/assets/index.865535e6.js +++ b/packages/core/examples/vite-vanilla-repl/dist/assets/index.b66fb637.js @@ -1 +1 @@ -import{g as s,b as d,e as t,j as u,l as o,f as r,p as f,i as p,d as g,h as i,w as l,a as m}from"./index.6e398646.js";export{s as getAudioContext,d as getCachedBuffer,t as getLoadedBuffer,u as getLoadedSamples,o as loadBuffer,r as loadGithubSamples,f as panic,p as resetLoadedSamples,g as reverseBuffer,i as samples,l as webaudioOutput,m as webaudioOutputTrigger}; +import{g as s,b as d,e as t,j as u,l as o,f as r,p as f,i as p,d as g,h as i,w as l,a as m}from"./index.f88145a1.js";export{s as getAudioContext,d as getCachedBuffer,t as getLoadedBuffer,u as getLoadedSamples,o as loadBuffer,r as loadGithubSamples,f as panic,p as resetLoadedSamples,g as reverseBuffer,i as samples,l as webaudioOutput,m as webaudioOutputTrigger}; diff --git a/packages/core/examples/vite-vanilla-repl/dist/assets/index.60ad3587.js b/packages/core/examples/vite-vanilla-repl/dist/assets/index.d9f8bbbd.js similarity index 99% rename from packages/core/examples/vite-vanilla-repl/dist/assets/index.60ad3587.js rename to packages/core/examples/vite-vanilla-repl/dist/assets/index.d9f8bbbd.js index 6291d255..5a3aae28 100644 --- a/packages/core/examples/vite-vanilla-repl/dist/assets/index.60ad3587.js +++ b/packages/core/examples/vite-vanilla-repl/dist/assets/index.d9f8bbbd.js @@ -1,4 +1,4 @@ -import{c as ut,r as Se,s as pt}from"./index.6e398646.js";function gt(a,c){function r(){this.constructor=a}r.prototype=c.prototype,a.prototype=new r}function D(a,c,r,_){var p=Error.call(this,a);return Object.setPrototypeOf&&Object.setPrototypeOf(p,D.prototype),p.expected=c,p.found=r,p.location=_,p.name="SyntaxError",p}gt(D,Error);function U(a,c,r){return r=r||" ",a.length>c?a:(c-=a.length,r+=r.repeat(c),a+r.slice(0,c))}D.prototype.format=function(a){var c="Error: "+this.message;if(this.location){var r=null,_;for(_=0;_c?a:(c-=a.length,r+=r.repeat(c),a+r.slice(0,c))}D.prototype.format=function(a){var c="Error: "+this.message;if(this.location){var r=null,_;for(_=0;_ `+$+` `+A+` | `+p.line+" | "+E+` diff --git a/packages/core/examples/vite-vanilla-repl/dist/assets/index.6e398646.js b/packages/core/examples/vite-vanilla-repl/dist/assets/index.f88145a1.js similarity index 99% rename from packages/core/examples/vite-vanilla-repl/dist/assets/index.6e398646.js rename to packages/core/examples/vite-vanilla-repl/dist/assets/index.f88145a1.js index 3c23972c..55c08661 100644 --- a/packages/core/examples/vite-vanilla-repl/dist/assets/index.6e398646.js +++ b/packages/core/examples/vite-vanilla-repl/dist/assets/index.f88145a1.js @@ -1,4 +1,4 @@ -var _t=Object.defineProperty;var It=(s,e,r)=>e in s?_t(s,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):s[e]=r;var V=(s,e,r)=>(It(s,typeof e!="symbol"?e+"":e,r),r);const strudel=Object.freeze(Object.defineProperty({__proto__:null,get Fraction(){return fraction},get controls(){return controls},get drawLine(){return drawLine},get gist(){return gist},get Hap(){return Hap},get Pattern(){return Pattern$3},get polyrhythm(){return polyrhythm},get pr(){return pr},get silence(){return silence},get pure(){return pure},get isPattern(){return isPattern$1},get reify(){return reify$1},get stack(){return stack},get slowcat(){return slowcat},get slowcatPrime(){return slowcatPrime},get fastcat(){return fastcat},get cat(){return cat},get timeCat(){return timeCat},get sequence(){return sequence},get seq(){return seq$2},get polymeterSteps(){return polymeterSteps},get polymeter(){return polymeter},get pm(){return pm},get add(){return add},get chop(){return chop},get chunk(){return chunk},get chunkBack(){return chunkBack},get div(){return div},get early(){return early},get echo(){return echo},get every(){return every},get fast(){return fast},get inv(){return inv},get invert(){return invert},get iter(){return iter},get iterBack(){return iterBack},get jux(){return jux},get juxBy(){return juxBy},get late(){return late},get linger(){return linger},get mask(){return mask},get mul(){return mul},get off(){return off},get ply(){return ply},get range(){return range},get rangex(){return rangex},get range2(){return range2},get rev(){return rev},get slow(){return slow},get struct(){return struct},get sub(){return sub},get superimpose(){return superimpose},get set(){return set},get when(){return when},get makeComposable(){return makeComposable},get patternify2(){return patternify2},get patternify3(){return patternify3},get patternify4(){return patternify4},get steady(){return steady},get signal(){return signal},get isaw(){return isaw},get isaw2(){return isaw2},get saw(){return saw},get saw2(){return saw2},get sine2(){return sine2},get sine(){return sine},get cosine(){return cosine},get cosine2(){return cosine2},get square(){return square},get square2(){return square2},get tri(){return tri},get tri2(){return tri2},get time(){return time},get rand(){return rand},get rand2(){return rand2},get _brandBy(){return _brandBy},get brandBy(){return brandBy},get brand(){return brand},get _irand(){return _irand},get irand(){return irand},get __chooseWith(){return __chooseWith},get chooseWith(){return chooseWith},get chooseInWith(){return chooseInWith},get choose(){return choose},get chooseCycles(){return chooseCycles},get randcat(){return randcat},get wchoose(){return wchoose},get wchooseCycles(){return wchooseCycles},get perlinWith(){return perlinWith},get perlin(){return perlin},get State(){return State},get TimeSpan(){return TimeSpan},get isNote(){return isNote$1},get tokenizeNote(){return tokenizeNote},get toMidi(){return toMidi},get fromMidi(){return fromMidi},get getFreq(){return getFreq},get midi2note(){return midi2note},get mod(){return mod},get getPlayableNoteValue(){return getPlayableNoteValue},get getFrequency(){return getFrequency},get rotate(){return rotate},get pipe(){return pipe},get compose(){return compose},get removeUndefineds(){return removeUndefineds},get flatten(){return flatten},get id(){return id},get constant(){return constant},get listRange(){return listRange},get curry(){return curry},get parseNumeral(){return parseNumeral},get mapArgs(){return mapArgs},get numeralArgs(){return numeralArgs},get parseFractional(){return parseFractional},get fractionalArgs(){return fractionalArgs},get ClockWorker(){return ClockWorker},get Scheduler(){return Scheduler},get evalScope(){return evalScope},get evaluate(){return evaluate$1},get repl(){return repl}},Symbol.toStringTag,{value:"Module"}));(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))u(i);new MutationObserver(i=>{for(const n of i)if(n.type==="childList")for(const a of n.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&u(a)}).observe(document,{childList:!0,subtree:!0});function r(i){const n={};return i.integrity&&(n.integrity=i.integrity),i.referrerpolicy&&(n.referrerPolicy=i.referrerpolicy),i.crossorigin==="use-credentials"?n.credentials="include":i.crossorigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function u(i){if(i.ep)return;i.ep=!0;const n=r(i);fetch(i.href,n)}})();const scriptRel="modulepreload",assetsURL=function(s){return"/"+s},seen={},__vitePreload=function(e,r,u){if(!r||r.length===0)return e();const i=document.getElementsByTagName("link");return Promise.all(r.map(n=>{if(n=assetsURL(n),n in seen)return;seen[n]=!0;const a=n.endsWith(".css"),l=a?'[rel="stylesheet"]':"";if(!!u)for(let A=i.length-1;A>=0;A--){const d=i[A];if(d.href===n&&(!a||d.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${n}"]${l}`))return;const c=document.createElement("link");if(c.rel=a?"stylesheet":scriptRel,a||(c.as="script",c.crossOrigin=""),c.href=n,document.head.appendChild(c),a)return new Promise((A,d)=>{c.addEventListener("load",A),c.addEventListener("error",()=>d(new Error(`Unable to preload CSS for ${n}`)))})})).then(()=>e())};var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}function getAugmentedNamespace(s){var e=s.default;if(typeof e=="function"){var r=function(){return e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(s).forEach(function(u){var i=Object.getOwnPropertyDescriptor(s,u);Object.defineProperty(r,u,i.get?i:{enumerable:!0,get:function(){return s[u]}})}),r}var fraction$1={exports:{}};/** +var _t=Object.defineProperty;var It=(s,e,r)=>e in s?_t(s,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):s[e]=r;var V=(s,e,r)=>(It(s,typeof e!="symbol"?e+"":e,r),r);const strudel=Object.freeze(Object.defineProperty({__proto__:null,get Fraction(){return fraction},get controls(){return controls},get drawLine(){return drawLine},get gist(){return gist},get Hap(){return Hap},get Pattern(){return Pattern$3},get polyrhythm(){return polyrhythm},get pr(){return pr},get silence(){return silence},get pure(){return pure},get isPattern(){return isPattern$1},get reify(){return reify$1},get stack(){return stack},get slowcat(){return slowcat},get slowcatPrime(){return slowcatPrime},get fastcat(){return fastcat},get cat(){return cat},get timeCat(){return timeCat},get sequence(){return sequence},get seq(){return seq$2},get polymeterSteps(){return polymeterSteps},get polymeter(){return polymeter},get pm(){return pm},get add(){return add},get chop(){return chop},get chunk(){return chunk},get chunkBack(){return chunkBack},get div(){return div},get early(){return early},get echo(){return echo},get every(){return every},get fast(){return fast},get inv(){return inv},get invert(){return invert},get iter(){return iter},get iterBack(){return iterBack},get jux(){return jux},get juxBy(){return juxBy},get late(){return late},get linger(){return linger},get mask(){return mask},get mul(){return mul},get off(){return off},get ply(){return ply},get range(){return range},get rangex(){return rangex},get range2(){return range2},get rev(){return rev},get slow(){return slow},get struct(){return struct},get sub(){return sub},get superimpose(){return superimpose},get set(){return set},get when(){return when},get makeComposable(){return makeComposable},get patternify2(){return patternify2},get patternify3(){return patternify3},get patternify4(){return patternify4},get steady(){return steady},get signal(){return signal},get isaw(){return isaw},get isaw2(){return isaw2},get saw(){return saw},get saw2(){return saw2},get sine2(){return sine2},get sine(){return sine},get cosine(){return cosine},get cosine2(){return cosine2},get square(){return square},get square2(){return square2},get tri(){return tri},get tri2(){return tri2},get time(){return time},get rand(){return rand},get rand2(){return rand2},get _brandBy(){return _brandBy},get brandBy(){return brandBy},get brand(){return brand},get _irand(){return _irand},get irand(){return irand},get __chooseWith(){return __chooseWith},get chooseWith(){return chooseWith},get chooseInWith(){return chooseInWith},get choose(){return choose},get chooseCycles(){return chooseCycles},get randcat(){return randcat},get wchoose(){return wchoose},get wchooseCycles(){return wchooseCycles},get perlinWith(){return perlinWith},get perlin(){return perlin},get State(){return State},get TimeSpan(){return TimeSpan},get isNote(){return isNote$1},get tokenizeNote(){return tokenizeNote},get toMidi(){return toMidi},get fromMidi(){return fromMidi},get getFreq(){return getFreq},get midi2note(){return midi2note},get mod(){return mod},get getPlayableNoteValue(){return getPlayableNoteValue},get getFrequency(){return getFrequency},get rotate(){return rotate},get pipe(){return pipe},get compose(){return compose},get removeUndefineds(){return removeUndefineds},get flatten(){return flatten},get id(){return id},get constant(){return constant},get listRange(){return listRange},get curry(){return curry},get parseNumeral(){return parseNumeral},get mapArgs(){return mapArgs},get numeralArgs(){return numeralArgs},get parseFractional(){return parseFractional},get fractionalArgs(){return fractionalArgs},get ClockWorker(){return ClockWorker},get Scheduler(){return Scheduler},get evalScope(){return evalScope},get evaluate(){return evaluate$1},get repl(){return repl}},Symbol.toStringTag,{value:"Module"}));(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))u(i);new MutationObserver(i=>{for(const n of i)if(n.type==="childList")for(const a of n.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&u(a)}).observe(document,{childList:!0,subtree:!0});function r(i){const n={};return i.integrity&&(n.integrity=i.integrity),i.referrerpolicy&&(n.referrerPolicy=i.referrerpolicy),i.crossorigin==="use-credentials"?n.credentials="include":i.crossorigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function u(i){if(i.ep)return;i.ep=!0;const n=r(i);fetch(i.href,n)}})();const scriptRel="modulepreload",assetsURL=function(s){return"/tidalcycles/strudel/general-purpose-scheduler/packages/core/examples/vite-vanilla-repl/dist/"+s},seen={},__vitePreload=function(e,r,u){if(!r||r.length===0)return e();const i=document.getElementsByTagName("link");return Promise.all(r.map(n=>{if(n=assetsURL(n),n in seen)return;seen[n]=!0;const a=n.endsWith(".css"),l=a?'[rel="stylesheet"]':"";if(!!u)for(let A=i.length-1;A>=0;A--){const d=i[A];if(d.href===n&&(!a||d.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${n}"]${l}`))return;const c=document.createElement("link");if(c.rel=a?"stylesheet":scriptRel,a||(c.as="script",c.crossOrigin=""),c.href=n,document.head.appendChild(c),a)return new Promise((A,d)=>{c.addEventListener("load",A),c.addEventListener("error",()=>d(new Error(`Unable to preload CSS for ${n}`)))})})).then(()=>e())};var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}function getAugmentedNamespace(s){var e=s.default;if(typeof e=="function"){var r=function(){return e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(s).forEach(function(u){var i=Object.getOwnPropertyDescriptor(s,u);Object.defineProperty(r,u,i.get?i:{enumerable:!0,get:function(){return s[u]}})}),r}var fraction$1={exports:{}};/** * @license Fraction.js v4.2.0 05/03/2022 * https://www.xarg.org/2014/03/rational-numbers-in-javascript/ * @@ -53,4 +53,4 @@ stack( s("breath").room(1).shape(.6).chop(16).rev().mask("") , n("0 1").s("east").delay(.5).degradeBy(.8).speed(rand.range(.5,1.5)) -).reset("")`,ctx=getAudioContext$1(),input=document.getElementById("text");input.innerHTML=tune;evalScope(controls,__vitePreload(()=>Promise.resolve().then(()=>strudel),void 0),__vitePreload(()=>import("./index.60ad3587.js"),[]),__vitePreload(()=>import("./index.865535e6.js"),[]),__vitePreload(()=>import("./index.c55cf335.js"),[]));const{evaluate}=repl({defaultOutput:webaudioOutput,getTime:()=>ctx.currentTime,transpiler:shapeshifter});document.getElementById("start").addEventListener("click",()=>{ctx.resume(),evaluate(input.value)});export{Hap as H,Pattern$3 as P,webaudioOutputTrigger as a,getCachedBuffer as b,chooseInWith as c,reverseBuffer as d,getLoadedBuffer as e,loadGithubSamples as f,getAudioContext$1 as g,samples as h,resetLoadedSamples as i,getLoadedSamples$1 as j,getAugmentedNamespace as k,loadBuffer as l,mod as m,commonjsGlobal as n,getDefaultExportFromCjs as o,panic as p,reify$1 as q,rand as r,strudel as s,stack as t,webaudioOutput as w}; +).reset("")`,ctx=getAudioContext$1(),input=document.getElementById("text");input.innerHTML=tune;evalScope(controls,__vitePreload(()=>Promise.resolve().then(()=>strudel),void 0),__vitePreload(()=>import("./index.d9f8bbbd.js"),[]),__vitePreload(()=>import("./index.b66fb637.js"),[]),__vitePreload(()=>import("./index.66252a18.js"),[]));const{evaluate}=repl({defaultOutput:webaudioOutput,getTime:()=>ctx.currentTime,transpiler:shapeshifter});document.getElementById("start").addEventListener("click",()=>{ctx.resume(),evaluate(input.value)});export{Hap as H,Pattern$3 as P,webaudioOutputTrigger as a,getCachedBuffer as b,chooseInWith as c,reverseBuffer as d,getLoadedBuffer as e,loadGithubSamples as f,getAudioContext$1 as g,samples as h,resetLoadedSamples as i,getLoadedSamples$1 as j,getAugmentedNamespace as k,loadBuffer as l,mod as m,commonjsGlobal as n,getDefaultExportFromCjs as o,panic as p,reify$1 as q,rand as r,strudel as s,stack as t,webaudioOutput as w}; diff --git a/packages/core/examples/vite-vanilla-repl/dist/index.html b/packages/core/examples/vite-vanilla-repl/dist/index.html index 8b5585fc..891d3a80 100644 --- a/packages/core/examples/vite-vanilla-repl/dist/index.html +++ b/packages/core/examples/vite-vanilla-repl/dist/index.html @@ -4,7 +4,7 @@ Vite Vanilla Strudel REPL - +
diff --git a/packages/core/examples/vite-vanilla-repl/package.json b/packages/core/examples/vite-vanilla-repl/package.json index 4860a5cd..c53bb411 100644 --- a/packages/core/examples/vite-vanilla-repl/package.json +++ b/packages/core/examples/vite-vanilla-repl/package.json @@ -5,7 +5,7 @@ "type": "module", "scripts": { "dev": "vite", - "build": "vite build", + "build": "vite build --base /tidalcycles/strudel/general-purpose-scheduler/packages/core/examples/vite-vanilla-repl/dist/", "preview": "vite preview" }, "devDependencies": { From 33cb506c7141dec86eaaae088ab03308181f1b56 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 6 Nov 2022 16:09:47 +0100 Subject: [PATCH 44/45] add vanilla repl link to githack --- packages/core/examples/vite-vanilla-repl/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/core/examples/vite-vanilla-repl/README.md b/packages/core/examples/vite-vanilla-repl/README.md index d7f65720..ac2ed20f 100644 --- a/packages/core/examples/vite-vanilla-repl/README.md +++ b/packages/core/examples/vite-vanilla-repl/README.md @@ -6,3 +6,5 @@ This folder demonstrates how to set up a strudel repl using vite and vanilla JS. npm i npm run dev ``` + +or view it [live on githack](https://rawcdn.githack.com/tidalcycles/strudel/5fb36acb046ead7cd6ad3cd10f532e7f585f536a/packages/core/examples/vite-vanilla-repl/dist/index.html) From 7d47f5aba33fc085717c1e78f7e2e3c63d56628c Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 6 Nov 2022 17:35:53 +0100 Subject: [PATCH 45/45] remove old clockworker + scheduler --- packages/core/clockworker.mjs | 72 ---------------------------- packages/core/cyclist.mjs | 3 +- packages/core/index.mjs | 2 - packages/core/scheduler.mjs | 90 ----------------------------------- 4 files changed, 1 insertion(+), 166 deletions(-) delete mode 100644 packages/core/clockworker.mjs delete mode 100644 packages/core/scheduler.mjs diff --git a/packages/core/clockworker.mjs b/packages/core/clockworker.mjs deleted file mode 100644 index ec09ef8e..00000000 --- a/packages/core/clockworker.mjs +++ /dev/null @@ -1,72 +0,0 @@ -/* -clockworker.mjs - -Copyright (C) 2022 Strudel contributors - see -This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . -*/ - -// helpers to create a worker dynamically without needing a server / extra file -const stringifyFunction = (func) => '(' + func + ')();'; -const urlifyFunction = (func) => URL.createObjectURL(new Blob([stringifyFunction(func)], { type: 'text/javascript' })); -const createWorker = (func) => new Worker(urlifyFunction(func)); - -// this is just a setInterval with a counter, running in a worker -export class ClockWorker { - worker; - interval = 1 / 20; // query span, use divisors of 1000 to get better accuracy - tick = 0; - constructor(callback, interval) { - // for some reason the constructor default value won't do in prod build - this.interval = interval || this.interval; - this.worker = createWorker(() => { - // we cannot use closures here! - let interval; - let timerID = null; // this is clock #1 (the sloppy js clock) - const clear = () => { - if (timerID) { - clearInterval(timerID); - timerID = null; - } - }; - const start = () => { - clear(); - if (!interval) { - throw new Error('no interval set! call worker.postMessage({interval}) before starting.'); - } - postMessage('tick'); - timerID = setInterval(() => postMessage('tick'), interval * 1000); - }; - self.onmessage = function (e) { - if (e.data == 'start') { - start(); - } else if (e.data.interval) { - interval = e.data.interval; - if (timerID) { - start(); - } - } else if (e.data == 'stop') { - clear(); - } - }; - }); - this.setInterval(this.interval); - // const round = (n, d) => Math.round(n * d) / d; - this.worker.onmessage = (e) => { - if (e.data === 'tick') { - // callback with query span, using clock #2 (the audio clock) - callback(this.tick++, this.interval); - } - }; - } - start() { - // console.log('start...'); - this.worker.postMessage('start'); - } - stop() { - // console.log('stop...'); - this.worker.postMessage('stop'); - this.tick = 0; - } - setInterval(interval) { - this.worker.postMessage({ interval }); - } -} diff --git a/packages/core/cyclist.mjs b/packages/core/cyclist.mjs index e462f96b..66105d0a 100644 --- a/packages/core/cyclist.mjs +++ b/packages/core/cyclist.mjs @@ -1,10 +1,9 @@ /* cyclist.mjs - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ -// import { ClockWorker } from './clockworker.mjs'; import createClock from './zyklus.mjs'; export class Cyclist { diff --git a/packages/core/index.mjs b/packages/core/index.mjs index e567f185..33a95a77 100644 --- a/packages/core/index.mjs +++ b/packages/core/index.mjs @@ -15,8 +15,6 @@ export * from './state.mjs'; export * from './timespan.mjs'; export * from './util.mjs'; export * from './speak.mjs'; -export * from './clockworker.mjs'; -export * from './scheduler.mjs'; export * from './evaluate.mjs'; export * from './repl.mjs'; export { default as drawLine } from './drawLine.mjs'; diff --git a/packages/core/scheduler.mjs b/packages/core/scheduler.mjs deleted file mode 100644 index 9118a761..00000000 --- a/packages/core/scheduler.mjs +++ /dev/null @@ -1,90 +0,0 @@ -/* -scheduler.mjs - -Copyright (C) 2022 Strudel contributors - see -This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . -*/ - -import { ClockWorker } from './clockworker.mjs'; - -export class Scheduler { - worker; - pattern; - started = false; - phase = 0; - cps = 1; - getTime; - lastTime; - constructor({ interval, onTrigger, onError, latency = 0.2, getTime }) { - this.worker = new ClockWorker((_, interval) => { - try { - // goals: - // - first query should start from zero - // - next query must start where the other left off - // - queries must be synced to the interval clock => no drifting - const time = getTime(); - if (!this.lastTime) { - this.lastTime = time; - return; - } - const passed = time - this.lastTime; // how much time passed since the last callback? - this.lastTime = time; - const begin = this.phase; // begin where we left off last time || 0 - const end = this.phase + passed * this.cps; - this.phase = end; // remember where we left off fro next query - - const haps = this.pattern.queryArc(begin, end); // get haps - // schedule each hap - haps.forEach((hap) => { - if (typeof hap.value?.cps === 'number') { - this.setCps(hap.value?.cps); - } - // skip haps without onset - if (!hap.part.begin.equals(hap.whole.begin)) { - return; - } - // the following line took me ages to come up with.. handle with care - const scheduled = time + (hap.whole.begin - begin) / this.cps - passed + interval + latency; - const duration = hap.duration / this.cps; // TODO: use legato / duration of objectified value - const now = getTime(); - const deadline = scheduled - now; - if (scheduled < now) { - console.warn(`deadline ${deadline.toFixed(2)} is below zero! latency ${latency}s, interval ${interval}s`); - return; - } - onTrigger?.(hap, deadline, duration); - }); - } catch (err) { - console.warn('scheduler error', err); - onError?.(err); - } - }, interval); - } - start() { - if (!this.pattern) { - throw new Error('Scheduler: no pattern set! call .setPattern first.'); - } - this.worker.start(); - this.started = true; - } - pause() { - this.worker.stop(); - delete this.lastTime; - this.started = false; - } - stop() { - this.phase = 0; - delete this.lastTime; - this.worker.stop(); - this.started = false; - } - setPattern(pat) { - this.pattern = pat; - } - setCps(cps = 1) { - this.cps = cps; - } - log(begin, end, haps) { - const onsets = haps.filter((h) => h.hasOnset()); - console.log(`${begin.toFixed(4)} - ${end.toFixed(4)} ${Array(onsets.length).fill('I').join('')}`); - } -}