From 1170ff58ee0b91de8e2578bd00f52f45345c0f74 Mon Sep 17 00:00:00 2001 From: gogins Date: Thu, 10 Aug 2023 20:26:37 -0400 Subject: [PATCH 01/79] Fix for #1. --- packages/csound/index.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/csound/index.mjs b/packages/csound/index.mjs index 31ffa83a..3063febc 100644 --- a/packages/csound/index.mjs +++ b/packages/csound/index.mjs @@ -137,7 +137,7 @@ export async function loadOrc(url) { export const csoundm = register('csoundm', (instrument, pat) => { let p1 = instrument; if (typeof instrument === 'string') { - p1 = `"{instrument}"`; + p1 = `"${instrument}"`; } init(); // not async to support csound inside other patterns + to be able to call pattern methods after it return pat.onTrigger((tidal_time, hap) => { From 08aab9d4d80099d4330549ee732c0ba9ec701297 Mon Sep 17 00:00:00 2001 From: Raphael Forment Date: Wed, 20 Sep 2023 19:44:32 +0200 Subject: [PATCH 02/79] Adding vibrato to Superdough sampler Modulating the `playbackRate` to simulate a vibrato! --- packages/superdough/sampler.mjs | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/packages/superdough/sampler.mjs b/packages/superdough/sampler.mjs index 76b6a542..365d397c 100644 --- a/packages/superdough/sampler.mjs +++ b/packages/superdough/sampler.mjs @@ -22,7 +22,7 @@ function humanFileSize(bytes, si) { return bytes.toFixed(1) + ' ' + units[u]; } -export const getSampleBufferSource = async (s, n, note, speed, freq, bank, resolveUrl) => { +export const getSampleBufferSource = async (s, n, note, speed, freq, vib, vibmod, bank, resolveUrl) => { let transpose = 0; if (freq !== undefined && note !== undefined) { logger('[sampler] hap has note and freq. ignoring note', 'warning'); @@ -57,8 +57,20 @@ export const getSampleBufferSource = async (s, n, note, speed, freq, bank, resol const bufferSource = ac.createBufferSource(); bufferSource.buffer = buffer; const playbackRate = 1.0 * Math.pow(2, transpose / 12); - // bufferSource.playbackRate.value = Math.pow(2, transpose / 12); - bufferSource.playbackRate.value = playbackRate; + if (vib > 0) { + let vibrato_oscillator = getAudioContext().createOscillator(); + vibrato_oscillator.frequency.value = vib; + const gain = getAudioContext().createGain(); + // Vibmod is the amount of vibrato, in semitones + bufferSource.playbackRate.value = Math.pow(2, transpose / 12); + gain.gain.value = vibmod / 4; + vibrato_oscillator.connect(gain); + gain.connect(bufferSource.playbackRate); + vibrato_oscillator.start(0); + } else { + bufferSource.playbackRate.value = Math.pow(2, transpose / 12); + bufferSource.playbackRate.value = playbackRate; + } return bufferSource; }; @@ -211,6 +223,8 @@ export async function onTriggerSample(t, value, onended, bank, resolveUrl) { begin = 0, loopEnd = 1, end = 1, + vib, + vibmod = 0.5, } = value; // load sample if (speed === 0) { @@ -224,7 +238,7 @@ export async function onTriggerSample(t, value, onended, bank, resolveUrl) { //const soundfont = getSoundfontKey(s); const time = t + nudge; - const bufferSource = await getSampleBufferSource(s, n, note, speed, freq, bank, resolveUrl); + const bufferSource = await getSampleBufferSource(s, n, note, speed, freq, vib, vibmod, bank, resolveUrl); // asny stuff above took too long? if (ac.currentTime > t) { @@ -255,7 +269,7 @@ export async function onTriggerSample(t, value, onended, bank, resolveUrl) { bufferSource.connect(envelope); const out = ac.createGain(); // we need a separate gain for the cutgroups because firefox... envelope.connect(out); - bufferSource.onended = function () { + bufferSource.onended = function() { bufferSource.disconnect(); envelope.disconnect(); out.disconnect(); From a23765a1cb47a1f122821613d14bc74ac31475d2 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Fri, 20 Oct 2023 22:30:54 +0200 Subject: [PATCH 03/79] fix: trailing slash confusion --- website/astro.config.mjs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/astro.config.mjs b/website/astro.config.mjs index bd018ddd..7a340516 100644 --- a/website/astro.config.mjs +++ b/website/astro.config.mjs @@ -45,6 +45,10 @@ const options = { // https://astro.build/config export default defineConfig({ + trailingSlash: 'always', + build: { + format: 'directory', + }, integrations: [ react(), mdx(options), From 2633f4fcefcd82ecf993a126e4b3eb06e8fd2f72 Mon Sep 17 00:00:00 2001 From: "Alexandre G.-Raymond" Date: Sat, 28 Oct 2023 19:50:41 +0200 Subject: [PATCH 04/79] Document adsr function --- packages/core/controls.mjs | 11 +++++++++++ test/__snapshots__/examples.test.mjs.snap | 9 +++++++++ website/src/pages/learn/effects.mdx | 4 ++++ 3 files changed, 24 insertions(+) diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs index 8841b4bc..1ca49bb6 100644 --- a/packages/core/controls.mjs +++ b/packages/core/controls.mjs @@ -1296,6 +1296,17 @@ generic_params.forEach(([names, ...aliases]) => { controls.createParams = (...names) => names.reduce((acc, name) => Object.assign(acc, { [name]: controls.createParam(name) }), {}); +/** + * ADSR envelope: Combination of Attack, Decay, Sustain, and Release. + * + * @name adsr + * @param {number | Pattern} time attack time in seconds + * @param {number | Pattern} time decay time in seconds + * @param {number | Pattern} gain sustain level (0 to 1) + * @param {number | Pattern} time release time in seconds + * @example + * note("").sound("sawtooth").lpf(600).adsr(".1:.1:.5:.2") + */ controls.adsr = register('adsr', (adsr, pat) => { adsr = !Array.isArray(adsr) ? [adsr] : adsr; const [attack, decay, sustain, release] = adsr; diff --git a/test/__snapshots__/examples.test.mjs.snap b/test/__snapshots__/examples.test.mjs.snap index 62c2f0d8..f7956be5 100644 --- a/test/__snapshots__/examples.test.mjs.snap +++ b/test/__snapshots__/examples.test.mjs.snap @@ -633,6 +633,15 @@ exports[`runs examples > example "addVoicings" example index 0 1`] = ` ] `; +exports[`runs examples > example "adsr" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c3 s:sawtooth cutoff:600 ]", + "[ 1/1 → 2/1 | note:bb2 s:sawtooth cutoff:600 ]", + "[ 2/1 → 3/1 | note:f3 s:sawtooth cutoff:600 ]", + "[ 3/1 → 4/1 | note:eb3 s:sawtooth cutoff:600 ]", +] +`; + exports[`runs examples > example "almostAlways" example index 0 1`] = ` [ "[ 0/1 → 1/8 | s:hh speed:0.5 ]", diff --git a/website/src/pages/learn/effects.mdx b/website/src/pages/learn/effects.mdx index fb506aad..30804240 100644 --- a/website/src/pages/learn/effects.mdx +++ b/website/src/pages/learn/effects.mdx @@ -82,6 +82,10 @@ Strudel uses ADSR envelopes, which are probably the most common way to describe +## adsr + + + # Filter Envelope Each filter can receive an additional filter envelope controlling the cutoff value dynamically. It uses an ADSR envelope similar to the one used for amplitude. There is an additional parameter to control the depth of the filter modulation: `lpenv`|`hpenv`|`bpenv`. This allows you to play subtle or huge filter modulations just the same by only increasing or decreasing the depth. From 4a57d3ada1929c4652614759741ed639d769a871 Mon Sep 17 00:00:00 2001 From: Jade Rowland Date: Tue, 31 Oct 2023 11:58:11 -0400 Subject: [PATCH 05/79] functions --- packages/core/pattern.mjs | 50 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/packages/core/pattern.mjs b/packages/core/pattern.mjs index 4dcf02e7..7bb82cdd 100644 --- a/packages/core/pattern.mjs +++ b/packages/core/pattern.mjs @@ -9,8 +9,7 @@ import Fraction from './fraction.mjs'; import Hap from './hap.mjs'; import State from './state.mjs'; import { unionWithObj } from './value.mjs'; - -import { compose, removeUndefineds, flatten, id, listRange, curry, _mod, numeralArgs, parseNumeral } from './util.mjs'; +import { clamp, removeUndefineds, flatten, id, listRange, curry, _mod, numeralArgs, parseNumeral } from './util.mjs'; import drawLine from './drawLine.mjs'; import { logger } from './logger.mjs'; @@ -2065,6 +2064,53 @@ export const stut = register('stut', function (times, feedback, time, pat) { return pat._echoWith(times, time, (pat, i) => pat.velocity(Math.pow(feedback, i))); }); +/** + * pick from the list of values (or patterns of values) via the index using the given + * pattern of integers + * @param {Pattern} pat + * @param {*} xs + * @returns {Pattern} + * @example + * note(pick(["g a", "e f", "f g f g" , "g a c d"], "<0 1 [2!2] 3>")) + */ + +export const pick = register('pick', (xs, pat) => { + xs = xs.map(reify); + if (xs.length == 0) { + return silence; + } + return pat + .fmap((i) => { + const key = clamp(i, 0, xs.length - 1); + return xs[key]; + }) + .innerJoin(); +}); + +/** + * pick from the list of values (or patterns of values) via the index using the given + * pattern of integers. The selected pattern will be compressed to fit the duration of the selecting event + * @param {Pattern} pat + * @param {*} xs + * @returns {Pattern} + * @example + * note(squeeze(["g a", "f g f g" , "g a c d"], "<0@2 [1!2] 2>")) + */ + +export const squeeze = register('squeeze', (xs, pat) => { + xs = xs.map(reify); + if (xs.length == 0) { + return silence; + } + return pat + .fmap((i) => { + const key = Math.floor(_mod(i, xs.length)); + console.log(key); + return xs[key]; + }) + .squeezeJoin(); +}); + /** * Divides a pattern into a given number of subdivisions, plays the subdivisions in order, but increments the starting subdivision each cycle. The pattern wraps to the first subdivision after the last subdivision is played. * @name iter From fd6c713119ca47b2a705b51e925328ed0086f442 Mon Sep 17 00:00:00 2001 From: Jade Rowland Date: Tue, 31 Oct 2023 12:18:19 -0400 Subject: [PATCH 06/79] move to signal file with other choose functions --- packages/core/pattern.mjs | 50 ++------------------------------------- packages/core/signal.mjs | 48 ++++++++++++++++++++++++++++++++++++- 2 files changed, 49 insertions(+), 49 deletions(-) diff --git a/packages/core/pattern.mjs b/packages/core/pattern.mjs index 7bb82cdd..4dcf02e7 100644 --- a/packages/core/pattern.mjs +++ b/packages/core/pattern.mjs @@ -9,7 +9,8 @@ import Fraction from './fraction.mjs'; import Hap from './hap.mjs'; import State from './state.mjs'; import { unionWithObj } from './value.mjs'; -import { clamp, removeUndefineds, flatten, id, listRange, curry, _mod, numeralArgs, parseNumeral } from './util.mjs'; + +import { compose, removeUndefineds, flatten, id, listRange, curry, _mod, numeralArgs, parseNumeral } from './util.mjs'; import drawLine from './drawLine.mjs'; import { logger } from './logger.mjs'; @@ -2064,53 +2065,6 @@ export const stut = register('stut', function (times, feedback, time, pat) { return pat._echoWith(times, time, (pat, i) => pat.velocity(Math.pow(feedback, i))); }); -/** - * pick from the list of values (or patterns of values) via the index using the given - * pattern of integers - * @param {Pattern} pat - * @param {*} xs - * @returns {Pattern} - * @example - * note(pick(["g a", "e f", "f g f g" , "g a c d"], "<0 1 [2!2] 3>")) - */ - -export const pick = register('pick', (xs, pat) => { - xs = xs.map(reify); - if (xs.length == 0) { - return silence; - } - return pat - .fmap((i) => { - const key = clamp(i, 0, xs.length - 1); - return xs[key]; - }) - .innerJoin(); -}); - -/** - * pick from the list of values (or patterns of values) via the index using the given - * pattern of integers. The selected pattern will be compressed to fit the duration of the selecting event - * @param {Pattern} pat - * @param {*} xs - * @returns {Pattern} - * @example - * note(squeeze(["g a", "f g f g" , "g a c d"], "<0@2 [1!2] 2>")) - */ - -export const squeeze = register('squeeze', (xs, pat) => { - xs = xs.map(reify); - if (xs.length == 0) { - return silence; - } - return pat - .fmap((i) => { - const key = Math.floor(_mod(i, xs.length)); - console.log(key); - return xs[key]; - }) - .squeezeJoin(); -}); - /** * Divides a pattern into a given number of subdivisions, plays the subdivisions in order, but increments the starting subdivision each cycle. The pattern wraps to the first subdivision after the last subdivision is played. * @name iter diff --git a/packages/core/signal.mjs b/packages/core/signal.mjs index d1408809..f48cc55e 100644 --- a/packages/core/signal.mjs +++ b/packages/core/signal.mjs @@ -7,7 +7,7 @@ This program is free software: you can redistribute it and/or modify it under th import { Hap } from './hap.mjs'; import { Pattern, fastcat, reify, silence, stack, register } from './pattern.mjs'; import Fraction from './fraction.mjs'; -import { id } from './util.mjs'; +import { id, _mod, clamp } from './util.mjs'; export function steady(value) { // A continuous value @@ -155,6 +155,52 @@ export const _irand = (i) => rand.fmap((x) => Math.trunc(x * i)); */ export const irand = (ipat) => reify(ipat).fmap(_irand).innerJoin(); +/** + * pick from the list of values (or patterns of values) via the index using the given + * pattern of integers + * @param {Pattern} pat + * @param {*} xs + * @returns {Pattern} + * @example + * note(pick("<0 1 [2!2] 3>", ["g a", "e f", "f g f g" , "g a c d"])) + */ + +export const pick = (pat, xs) => { + xs = xs.map(reify); + if (xs.length == 0) { + return silence; + } + return pat + .fmap((i) => { + const key = clamp(Math.round(i), 0, xs.length - 1); + return xs[key]; + }) + .innerJoin(); +}; + +/** + * pick from the list of values (or patterns of values) via the index using the given + * pattern of integers. The selected pattern will be compressed to fit the duration of the selecting event + * @param {Pattern} pat + * @param {*} xs + * @returns {Pattern} + * @example + * note(squeeze("<0@2 [1!2] 2>", ["g a", "f g f g" , "g a c d"])) + */ + +export const squeeze = (pat, xs) => { + xs = xs.map(reify); + if (xs.length == 0) { + return silence; + } + return pat + .fmap((i) => { + const key = _mod(Math.round(i), xs.length); + return xs[key]; + }) + .squeezeJoin(); +}; + export const __chooseWith = (pat, xs) => { xs = xs.map(reify); if (xs.length == 0) { From 36ef03a406922fabe501555831baead7392e4aac Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Wed, 1 Nov 2023 21:57:14 +0100 Subject: [PATCH 07/79] use 0.1.4 @vite-pwa/astro --- pnpm-lock.yaml | 27 ++++++++++++--------------- website/package.json | 2 +- website/vite-pwa-astro-0.1.3.tgz | Bin 4695 -> 0 bytes 3 files changed, 13 insertions(+), 16 deletions(-) delete mode 100644 website/vite-pwa-astro-0.1.3.tgz diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 591b2b02..a1524566 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -678,8 +678,8 @@ importers: version: 3.3.2 devDependencies: '@vite-pwa/astro': - specifier: file:vite-pwa-astro-0.1.3.tgz - version: file:website/vite-pwa-astro-0.1.3.tgz(astro@2.3.2)(vite-plugin-pwa@0.16.5) + specifier: ^0.1.4 + version: 0.1.4(astro@2.3.2)(vite-plugin-pwa@0.16.5) html-escaper: specifier: ^3.0.3 version: 3.0.3 @@ -4790,6 +4790,16 @@ packages: - '@codemirror/search' dev: false + /@vite-pwa/astro@0.1.4(astro@2.3.2)(vite-plugin-pwa@0.16.5): + resolution: {integrity: sha512-OmpaMmF9ogxI/YeUFNS0VDhaoPWvoVdRg0iEiQVz4oIQ+AdEjKNx7h0Xbz9p10/tA8EPX+/ugBMUT0xERMAuyQ==} + peerDependencies: + astro: ^1.6.0 || ^2.0.0 || ^3.0.0 + vite-plugin-pwa: '>=0.16.5 <1' + dependencies: + astro: 2.3.2(@types/node@18.16.3) + vite-plugin-pwa: 0.16.5(vite@4.4.5)(workbox-build@7.0.0)(workbox-window@7.0.0) + dev: true + /@vitejs/plugin-react@4.0.0(vite@4.3.3): resolution: {integrity: sha512-HX0XzMjL3hhOYm+0s95pb0Z7F8O81G7joUHgfDd/9J/ZZf5k4xX6QAMFkKsHFxaHlf6X7GD7+XuaZ66ULiJuhQ==} engines: {node: ^14.18.0 || >=16.0.0} @@ -14172,16 +14182,3 @@ packages: /zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - - file:website/vite-pwa-astro-0.1.3.tgz(astro@2.3.2)(vite-plugin-pwa@0.16.5): - resolution: {integrity: sha512-CI7RC86z6WzQ1pskqHLYPaMhphU8B6QphrkQ9hHplhA7D4zpeTW7pKStn5dysHfM8uXliIX4TykyNquxop8AQA==, tarball: file:website/vite-pwa-astro-0.1.3.tgz} - id: file:website/vite-pwa-astro-0.1.3.tgz - name: '@vite-pwa/astro' - version: 0.1.3 - peerDependencies: - astro: ^1.6.0 || ^2.0.0 || ^3.0.0 - vite-plugin-pwa: '>=0.16.5 <1' - dependencies: - astro: 2.3.2(@types/node@18.16.3) - vite-plugin-pwa: 0.16.5(vite@4.4.5)(workbox-build@7.0.0)(workbox-window@7.0.0) - dev: true diff --git a/website/package.json b/website/package.json index ec3068b4..f766c420 100644 --- a/website/package.json +++ b/website/package.json @@ -60,7 +60,7 @@ "tailwindcss": "^3.3.2" }, "devDependencies": { - "@vite-pwa/astro": "file:vite-pwa-astro-0.1.3.tgz", + "@vite-pwa/astro": "^0.1.4", "html-escaper": "^3.0.3", "vite-plugin-pwa": "^0.16.5", "workbox-window": "^7.0.0" diff --git a/website/vite-pwa-astro-0.1.3.tgz b/website/vite-pwa-astro-0.1.3.tgz deleted file mode 100644 index ddcb26bef60e8e00f30382a91d7fcaf795471393..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4695 zcmV-d5~%GTiwFP!000006YV_NavMo2bl z6d+KQl~-kDW?c%c!G$$q)r0nK>!{oMgU?ZFwc5t|I?!J%vwv%idVK?GYxg#4_+_KE z4)nKi58FQrH!~&Su@xaJzbl?u;r@@5!*&l2oB{JWGmPCJyo#LBIELb&1dUpwQ90?f zx~-!gH2ruS_*bx>z@u>-hkUbI9Xath>6?SVt6F|MOtuZ#*uwa0k7zi1U5e*N9@x+Q40^4A5 z9t<1{@qrx-5|8<@6%)Oo<1!A#c+8;CRXqwNLBwX3YdAhon{I*$avvlyM2yFgGawvg zaQuOr*u;Zwb{)@A6sWsU4>u5L!chX^vkYEfJ45=*gjiwHcO5=1gY6LNeiCCPr%Ivc zGRaX5BH+w*4aDFe-$K@uI{`zihosP0sfbg}WE^;TNgQqrlgLMsO!Tn>RGFaonhj#A zA@E_~y1|4*8w9@XkVJgbFnZWz^@B?$WRauq2QjiLS)c(3(@|ATd~CTc^qEo^(na-J z8F3;ak5kK!9m|CdUoOF(#wf9JqZUR%iDq{%k&OAGCWf%Eo@XcSJb%k2}zWlV+#a-aS2NcHrc+ zb8_5mA^AN-d(=MK?;w@dAcG_K1$bRSeuxyYzvB$AMg8hzK5(}vsawCEu^!v2i znj(a~R`URHb*VFnsDVx6hxTU6^06gU@t<5()$wii#vHunpO(h^m{65&IvkVFRY8v?@L0Aa)~9X8p7q2*$L6m@p+ zIB{G%SI05DuuUjb3-WgyS&oY#t?OERjP=gQ4>0P>MwDz1xgNwpbhRHuo)vFmhlF9{ zb;<_wt-i|+E#DbpBGAKBg%1%JSu2)cYg;iGu^1yP@%&JCS5>mzw>;wO8>yg)Rkcv3 zLB+wm2eTj2h+=9S1Q&c$^#UjexJ_hb=!`Zwq6`b0P<)Hbc^<}J$}p&@3`uBX(z7dm z!F7f;D$WoyHrWHVwzi<46j~@{fPmOHRSU{Tx_Fprl>((T*G9IVP(AjN{Fr?U?Ph03 z|0KDmbvQf^bA5Bel;X%$=X=bLU4}H7g*jBUB(1GMGjxU336mpR9I^PBqt%zl5h-Rh zBek5VQFdIOQQtgcvk*C{vW+)b+7zPn@aFLpG8al2Y^iMOn~4c<%%Wm36vj~?lPpkL z7Q)@T5SsKG?hvw>S-fep%L+$ZN$E43ai52l5+o&+wQIC{g2(AGC3%guu7R)13ulcT z_)Jfln`cLA`la{S{M1jS<|a&gDz|IJ#iPXQv&h6uu-$7vYrVoWuziH7SqatR+gd3~ z3tJ1cP`FVfp&l)f#jpH9&JBH}Gz6yH=-hm_CYD2spAqvJ&Ifk#yjh$|pYmtuPxN`$ zsjnYI4ExO4a`6Tmmu^UTOeGdB+#*~mWTcZ0`K|W+<-B_@OYdJ^;MdVgwr-kUMI{TV z?T*5%b*5c7c&gVXD6YzY%M)6QqOU%CDILCM(6Z&~$#Po~7>S>~ln|=>bbc@)9-~>o z%p`J6=G*)^E-i}%a~ykap;RJI*0Kg;4Xj6662m?uo9IiKO00TU(Y5dBdRkZ(>m}Hf z6?*VUWYM2YQ08`$X2zOC2c#f$n|DBWW;sThS! zI};$Nm*q~ZD_#H*PEfK!;re`rN{UVDDkSwFPN9>~bz;GCW^z;enfNqa=8xhrRG|Kn z+}h$6Gh(4@p>C^xEF}0*wTyg}@2D3w^c+HO)%v-b>CVX6cn{zFf4s8ICiRtgz;D$QiROqwS-1&}C z7y6qf7PIapGezfFk($v`uq=b7Y0kkbTpu^J^UiHyvY_)Yofm*TlLo-68F%$wU#Kj0 zL9E%)!Di=^MjKMDtdpvY$5Ak$5rb9~1yQlkVIJ)Q(e}&?0?pKiI^}DjieVY z=wQ};uF`FcZ@92!QSVA5ub3AHUKp!J$EW?VjslT&lOVe22V!M%orTiOWE#-=Xz!5B z2Wu7cTGd&;w(^{na^ViW#`BaWA=ND8f({PUak{cnlRvvLG9mh0=O*Ed z+27EBLcP7#R)1$P(0g=z>ki1lhhZ`rzBS_CLC4p|2lN|Em3wW-w09b0Zpyqf(ZLEG z%1w0Bj)@go)6|AZJ{hH!{z4f z?_<&Xzv{2~ng{-;rtyLE-!*KV-T$rE>&yM$FHy*2$nBf??Msm+6=KXCs8PBNS$D}I zS^!XW&8(YivR2s;I!pYFs4?_I@0$na*JeXP*o+S%M>s`l{v#Fz6_qri7X#6^0GlQ(D2*V!$1-52<%}r`kgdD(fuZQt4K>P3mK)J)%NC z8Sz_nt2&$~j7yd-*cE0MHuXG{)Nk6DE~G<_KU7Mhf6^*KeI;Vq?`oYujJ^~kRa{9` zU=}j_-J}m8hnYQcvdx$mrdwg^xM2=z@HzwJctmCn#zPpH{U{z)>uLsaHPtFwkg&uB zRJ6h8TRq)66=abZ1#uZ6RXV|FrL9V^slGzSqCFNe#NZDcmQkD>5hU?#-P|y1@a`Ra z+c0bD+ZugaFcM!aB6Ot_ux@ImDgTK==QxY7jycJm_Jpm<45RWy3g%8Ri&nOcM~*iF9u2lu%<333G&A%^D+m>D%_fLYf!P$UohBBUbZ+}mKiW2K z1#3L2hTDd*h%XDq5gTr;=oDx&nV9IEUUQKJX-l5raRp+!Y>3RidewI=|DuqUP@}>M zlaC$d+T3)4Dq^i(&SKgb1a1&*t*tdT9zVG2T7BkjDZLz>9D>e?5q;H4xh;GYw}l1V zl4lkiPf6_s6W__%$6Mt_>UX4A2&AebCfu^cDO59Z?FgVz8(~$ zKK2j{?!prRFqMPMZBCdQQ|3j?ry76a#7~nxke~Q~!X<&KfSe(*!{aNLZHc?9?vzbw z>cnhn@C9k`LVt523~V2l=r(hm%ZSFKIvUHhi`JuF(U|;lG&=+<|066bRl!NhukqDa z@LzxX+dqMQX2nUwxM5VV;@5uxXRE7wxjVUcK@QyN>dWE>O{yf&{PIs>byau@dH%Ax zx(OVYbxz-9Kv_%>=dPj-OOAn=^;WNV*|txE?nt6QrwnG|Th|2IS{4i&mMxW3?W5;-x_ zq2rJEplvJ($U>(KDI6_r3PGG2Wm?dp0hqQG2PSqoPwoa z{WEqx5eFthzjRiF`bH52XVbCJ)CuMpB5+*`erjD>QvNbLOBk$`p~I{J{_0*bm+nJ% z1J|*C+7*|KPaOPm>WOGLBnk&yx>tLOt^GDe+e zc%zHwNZoNsP{R4w|0oesAB%Gqa~LC4I;kUs={Xh8!3@Q~=M*f|^5=hp==K6N+(Q)2@q#KXPD^DtlVkBSCte88MeA!`y>McJ7Mt2Q-4|oO zObC=FcStbQLB#Wgz{I=UtPr0idENc&D0vgZ+QJ?_Hi-{8U4HcsB78$Jl;({wH^1%?FmTfP9A|To_14De?0EDy@XW#z< zPPyQ;iJ<2*u;)2*!O4Cux0Te19A+ZtLip@K?WPbV=0>#&v(Sdza-j=4Y>2Z$-$j&q zU6JD{!B;e_Fafc(CtzlCGlS^p(U$bYLRO(M>n_hjT2F=;lu0~OipeUb(fbp(!Q@Oe2 z6O_-2ToAx9J8x3pJ{8v{X-LnfYCV&g>SFht-y^1Mph}ycRi@0aO6HHz0l$~#2JDPR z432#YhADb9$-zY*bEoeF37i=hItBhXazd<3rjZryQ-~#ReS9&oG`V*=g8UM5Wy&;_ zS2K3UY;Xbex-9=N3;DQ^iH8?N^|W`X%y8 z=2uR;Ra!+=v2RtUb|ryK=7iNu`d7zeryVo*lM(FN>yr zLR!)-aF;}G}c$jLiL2&*@P3! zcpb}ql;>i*v^huRVaDY1=sw!^mnEJ5pK0og@}c=(o4@~iuTfjh|1VM0Tv}CASH6&0 ZSx%m1S(as4mjCbNzX6M7IGO-l003pI3>g3b From 41a9098c80f284b5cfab3326771f1fa900a15726 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Wed, 1 Nov 2023 21:59:53 +0100 Subject: [PATCH 08/79] use new flag --- website/astro.config.mjs | 1 + 1 file changed, 1 insertion(+) diff --git a/website/astro.config.mjs b/website/astro.config.mjs index 83de5f26..f8fceaf7 100644 --- a/website/astro.config.mjs +++ b/website/astro.config.mjs @@ -50,6 +50,7 @@ export default defineConfig({ mdx(options), tailwind(), AstroPWA({ + experimental: { directoryAndTrailingSlashHandler: true }, registerType: 'autoUpdate', injectRegister: 'auto', workbox: { From 9e649a18c48c994079704c9d5d683d7fb82fc8a9 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Wed, 1 Nov 2023 22:07:19 +0100 Subject: [PATCH 09/79] snapshots --- test/__snapshots__/examples.test.mjs.snap | 36 +++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/test/__snapshots__/examples.test.mjs.snap b/test/__snapshots__/examples.test.mjs.snap index b37af3e9..d3077e24 100644 --- a/test/__snapshots__/examples.test.mjs.snap +++ b/test/__snapshots__/examples.test.mjs.snap @@ -3275,6 +3275,23 @@ exports[`runs examples > example "perlin" example index 0 1`] = ` ] `; +exports[`runs examples > example "pick" example index 0 1`] = ` +[ + "[ 0/1 → 1/2 | note:g ]", + "[ 1/2 → 1/1 | note:a ]", + "[ 1/1 → 3/2 | note:e ]", + "[ 3/2 → 2/1 | note:f ]", + "[ 2/1 → 9/4 | note:f ]", + "[ 9/4 → 5/2 | note:g ]", + "[ 5/2 → 11/4 | note:f ]", + "[ 11/4 → 3/1 | note:g ]", + "[ 3/1 → 13/4 | note:g ]", + "[ 13/4 → 7/2 | note:a ]", + "[ 7/2 → 15/4 | note:c ]", + "[ 15/4 → 4/1 | note:d ]", +] +`; + exports[`runs examples > example "ply" example index 0 1`] = ` [ "[ 0/1 → 1/4 | s:bd ]", @@ -4612,6 +4629,25 @@ exports[`runs examples > example "square" example index 0 1`] = ` ] `; +exports[`runs examples > example "squeeze" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:g ]", + "[ 1/1 → 2/1 | note:a ]", + "[ 2/1 → 17/8 | note:f ]", + "[ 17/8 → 9/4 | note:g ]", + "[ 9/4 → 19/8 | note:f ]", + "[ 19/8 → 5/2 | note:g ]", + "[ 5/2 → 21/8 | note:f ]", + "[ 21/8 → 11/4 | note:g ]", + "[ 11/4 → 23/8 | note:f ]", + "[ 23/8 → 3/1 | note:g ]", + "[ 3/1 → 13/4 | note:g ]", + "[ 13/4 → 7/2 | note:a ]", + "[ 7/2 → 15/4 | note:c ]", + "[ 15/4 → 4/1 | note:d ]", +] +`; + exports[`runs examples > example "squiz" example index 0 1`] = ` [ "[ 0/1 → 1/4 | squiz:2 s:bd ]", From 34bd0e11e4507b2b3d7448f97ea043fca5126c03 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Wed, 1 Nov 2023 22:09:40 +0100 Subject: [PATCH 10/79] add doc chapters --- website/src/pages/learn/conditional-modifiers.mdx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/website/src/pages/learn/conditional-modifiers.mdx b/website/src/pages/learn/conditional-modifiers.mdx index 2bc4b42d..d66b2698 100644 --- a/website/src/pages/learn/conditional-modifiers.mdx +++ b/website/src/pages/learn/conditional-modifiers.mdx @@ -60,4 +60,12 @@ import { JsDoc } from '../../docs/JsDoc'; +## pick + + + +## squeeze + + + After Conditional Modifiers, let's see what [Accumulation Modifiers](/learn/accumulation) have to offer. From d4c12dcef40e84ce083a030d5b70d1c82dbadaee Mon Sep 17 00:00:00 2001 From: Dsm0 Date: Wed, 1 Nov 2023 17:14:22 -0400 Subject: [PATCH 11/79] integrated vscode bindings --- packages/react/package.json | 5 + packages/react/src/components/CodeMirror6.jsx | 24 +- pnpm-lock.yaml | 523 +++++++++++------- website/src/repl/Footer.jsx | 2 +- 4 files changed, 347 insertions(+), 207 deletions(-) diff --git a/packages/react/package.json b/packages/react/package.json index deef95d8..df017d91 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -33,12 +33,17 @@ "homepage": "https://github.com/tidalcycles/strudel#readme", "dependencies": { "@codemirror/autocomplete": "^6.6.0", + "@codemirror/commands": "^6.0.0", "@codemirror/lang-javascript": "^6.1.7", + "@codemirror/language": "^6.0.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/search": "^6.0.0", "@codemirror/state": "^6.2.0", "@codemirror/view": "^6.10.0", "@lezer/highlight": "^1.1.4", "@replit/codemirror-emacs": "^6.0.1", "@replit/codemirror-vim": "^6.0.14", + "@replit/codemirror-vscode-keymap": "^6.0.2", "@strudel.cycles/core": "workspace:*", "@strudel.cycles/transpiler": "workspace:*", "@strudel.cycles/webaudio": "workspace:*", diff --git a/packages/react/src/components/CodeMirror6.jsx b/packages/react/src/components/CodeMirror6.jsx index a5af5312..6d7424a1 100644 --- a/packages/react/src/components/CodeMirror6.jsx +++ b/packages/react/src/components/CodeMirror6.jsx @@ -1,8 +1,11 @@ import { autocompletion } from '@codemirror/autocomplete'; +import { selectAll } from '@codemirror/commands'; +import { Prec } from '@codemirror/state'; import { javascript, javascriptLanguage } from '@codemirror/lang-javascript'; -import { EditorView } from '@codemirror/view'; +import { ViewPlugin, EditorView, keymap } from '@codemirror/view'; import { emacs } from '@replit/codemirror-emacs'; import { vim } from '@replit/codemirror-vim'; +import { vscodeKeymap } from '@replit/codemirror-vscode-keymap'; import _CodeMirror from '@uiw/react-codemirror'; import React, { useCallback, useMemo } from 'react'; import strudelTheme from '../themes/strudel-theme'; @@ -61,11 +64,28 @@ export default function CodeMirror({ [onSelectionChange], ); + const vscodePlugin = ViewPlugin.fromClass( + class { + constructor(view) {} + }, + { + provide: (plugin) => { + return Prec.highest(keymap.of([ + ...vscodeKeymap + , + ])); + }, + }, + ); + + const vscodeExtension = (options) => [vscodePlugin].concat(options ?? []); + const extensions = useMemo(() => { let _extensions = [...staticExtensions]; let bindings = { vim, emacs, + vscodeExtension, }; if (bindings[keybindings]) { @@ -78,6 +98,8 @@ export default function CodeMirror({ _extensions.push(autocompletion({ override: [] })); } + _extensions.push([keymap.of({})]); + if (isLineWrappingEnabled) { _extensions.push(EditorView.lineWrapping); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 591b2b02..c2ec14d7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -108,7 +108,7 @@ importers: version: 4.3.3 vitest: specifier: ^0.33.0 - version: 0.33.0(@vitest/ui@0.28.0) + version: 0.33.0 packages/core/examples/vite-vanilla-repl: dependencies: @@ -164,7 +164,7 @@ importers: dependencies: '@csound/browser': specifier: 6.18.7 - version: 6.18.7(eslint@8.39.0) + version: 6.18.7 '@strudel.cycles/core': specifier: workspace:* version: link:../core @@ -201,7 +201,7 @@ importers: version: 5.8.1 vite: specifier: ^4.3.3 - version: 4.4.5(@types/node@18.16.3) + version: 4.4.5 packages/midi: dependencies: @@ -233,7 +233,7 @@ importers: version: 4.3.3 vitest: specifier: ^0.33.0 - version: 0.33.0(@vitest/ui@0.28.0) + version: 0.33.0 packages/osc: dependencies: @@ -255,10 +255,22 @@ importers: dependencies: '@codemirror/autocomplete': specifier: ^6.6.0 - version: 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2) + version: 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@codemirror/commands': + specifier: ^6.0.0 + version: 6.2.4 '@codemirror/lang-javascript': specifier: ^6.1.7 version: 6.1.7 + '@codemirror/language': + specifier: ^6.0.0 + version: 6.6.0 + '@codemirror/lint': + specifier: ^6.0.0 + version: 6.1.0 + '@codemirror/search': + specifier: ^6.0.0 + version: 6.2.3 '@codemirror/state': specifier: ^6.2.0 version: 6.2.0 @@ -274,6 +286,9 @@ importers: '@replit/codemirror-vim': specifier: ^6.0.14 version: 6.0.14(@codemirror/commands@6.2.4)(@codemirror/language@6.6.0)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@replit/codemirror-vscode-keymap': + specifier: ^6.0.2 + version: 6.0.2(@codemirror/autocomplete@6.6.0)(@codemirror/commands@6.2.4)(@codemirror/language@6.6.0)(@codemirror/lint@6.1.0)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) '@strudel.cycles/core': specifier: workspace:* version: link:../core @@ -291,7 +306,7 @@ importers: version: 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) '@uiw/react-codemirror': specifier: ^4.19.16 - version: 4.19.16(@babel/runtime@7.20.13)(@codemirror/autocomplete@6.6.0)(@codemirror/language@6.6.0)(@codemirror/lint@6.1.0)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/theme-one-dark@6.1.0)(@codemirror/view@6.10.0)(codemirror@6.0.1)(react-dom@18.2.0)(react@18.2.0) + version: 4.19.16(@codemirror/autocomplete@6.6.0)(@codemirror/language@6.6.0)(@codemirror/lint@6.1.0)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(react-dom@18.2.0)(react@18.2.0) react-hook-inview: specifier: ^4.5.0 version: 4.5.0(react-dom@18.2.0)(react@18.2.0) @@ -429,7 +444,7 @@ importers: devDependencies: vite: specifier: ^4.4.5 - version: 4.4.5(@types/node@18.16.3) + version: 4.4.5 packages/tonal: dependencies: @@ -451,7 +466,7 @@ importers: version: 4.3.3 vitest: specifier: ^0.33.0 - version: 0.33.0(@vitest/ui@0.28.0) + version: 0.33.0 packages/transpiler: dependencies: @@ -476,7 +491,7 @@ importers: version: 4.3.3 vitest: specifier: ^0.33.0 - version: 0.33.0(@vitest/ui@0.28.0) + version: 0.33.0 packages/web: dependencies: @@ -534,7 +549,7 @@ importers: version: 4.3.3 vitest: specifier: ^0.33.0 - version: 0.33.0(@vitest/ui@0.28.0) + version: 0.33.0 website: dependencies: @@ -543,7 +558,7 @@ importers: version: 4.17.0 '@astrojs/mdx': specifier: ^0.19.0 - version: 0.19.0(astro@2.3.2)(rollup@3.28.0) + version: 0.19.0(astro@2.3.2) '@astrojs/react': specifier: ^2.1.1 version: 2.1.1(@types/react-dom@18.2.1)(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) @@ -636,7 +651,7 @@ importers: version: 18.2.1 '@uiw/codemirror-themes-all': specifier: ^4.19.16 - version: 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + version: 4.19.16 astro: specifier: ^2.3.2 version: 2.3.2(@types/node@18.16.3) @@ -685,7 +700,7 @@ importers: version: 3.0.3 vite-plugin-pwa: specifier: ^0.16.5 - version: 0.16.5(vite@4.4.5)(workbox-build@7.0.0)(workbox-window@7.0.0) + version: 0.16.5(workbox-window@7.0.0) workbox-window: specifier: ^7.0.0 version: 7.0.0 @@ -906,14 +921,14 @@ packages: transitivePeerDependencies: - supports-color - /@astrojs/mdx@0.19.0(astro@2.3.2)(rollup@3.28.0): + /@astrojs/mdx@0.19.0(astro@2.3.2): resolution: {integrity: sha512-McFpMV+npinIEKnY5t9hsdzLd76g78GgIRUPxem2OeXPNB8xr2pNS28GeU0+6Pn5STnB+sgcyyeqXLgzauOlMQ==} engines: {node: '>=16.12.0'} dependencies: '@astrojs/markdown-remark': 2.1.4(astro@2.3.2) '@astrojs/prism': 2.1.1 '@mdx-js/mdx': 2.3.0 - '@mdx-js/rollup': 2.3.0(rollup@3.28.0) + '@mdx-js/rollup': 2.3.0 acorn: 8.8.2 es-module-lexer: 1.2.1 estree-util-visit: 1.2.1 @@ -1006,16 +1021,10 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.18.6 - dev: true - - /@babel/compat-data@7.20.14: - resolution: {integrity: sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==} - engines: {node: '>=6.9.0'} /@babel/compat-data@7.21.5: resolution: {integrity: sha512-M+XAiQ7GzQ3FDPf0KOLkugzptnIypt0X0ma0wmlTKPR3IchgNFdx2JXxZdvd18JY5s7QkaFD/qyX0dsMpog/Ug==} engines: {node: '>=6.9.0'} - dev: true /@babel/core@7.20.12: resolution: {integrity: sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==} @@ -1087,7 +1096,6 @@ packages: '@jridgewell/gen-mapping': 0.3.2 '@jridgewell/trace-mapping': 0.3.17 jsesc: 2.5.2 - dev: true /@babel/helper-annotate-as-pure@7.18.6: resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} @@ -1109,10 +1117,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.20.14 + '@babel/compat-data': 7.21.5 '@babel/core': 7.20.12 - '@babel/helper-validator-option': 7.18.6 - browserslist: 4.21.4 + '@babel/helper-validator-option': 7.21.0 + browserslist: 4.21.5 lru-cache: 5.1.1 semver: 6.3.0 @@ -1183,7 +1191,6 @@ packages: /@babel/helper-environment-visitor@7.21.5: resolution: {integrity: sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==} engines: {node: '>=6.9.0'} - dev: true /@babel/helper-explode-assignable-expression@7.18.6: resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==} @@ -1205,7 +1212,6 @@ packages: dependencies: '@babel/template': 7.20.7 '@babel/types': 7.21.5 - dev: true /@babel/helper-hoist-variables@7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} @@ -1231,19 +1237,18 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.21.5 - dev: true /@babel/helper-module-transforms@7.20.11: resolution: {integrity: sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-module-imports': 7.18.6 - '@babel/helper-simple-access': 7.20.2 + '@babel/helper-environment-visitor': 7.21.5 + '@babel/helper-module-imports': 7.21.4 + '@babel/helper-simple-access': 7.21.5 '@babel/helper-split-export-declaration': 7.18.6 '@babel/helper-validator-identifier': 7.19.1 '@babel/template': 7.20.7 - '@babel/traverse': 7.20.13 + '@babel/traverse': 7.21.5 '@babel/types': 7.21.5 transitivePeerDependencies: - supports-color @@ -1304,18 +1309,11 @@ packages: - supports-color dev: true - /@babel/helper-simple-access@7.20.2: - resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.21.5 - /@babel/helper-simple-access@7.21.5: resolution: {integrity: sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.21.5 - dev: true /@babel/helper-skip-transparent-expression-wrappers@7.20.0: resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} @@ -1342,14 +1340,9 @@ packages: resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option@7.18.6: - resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} - engines: {node: '>=6.9.0'} - /@babel/helper-validator-option@7.21.0: resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} engines: {node: '>=6.9.0'} - dev: true /@babel/helper-wrap-function@7.20.5: resolution: {integrity: sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==} @@ -1368,7 +1361,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.20.7 - '@babel/traverse': 7.20.13 + '@babel/traverse': 7.21.5 '@babel/types': 7.21.5 transitivePeerDependencies: - supports-color @@ -2293,7 +2286,7 @@ packages: resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.18.6 + '@babel/code-frame': 7.21.4 '@babel/parser': 7.21.5 '@babel/types': 7.21.5 @@ -2330,7 +2323,6 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color - dev: true /@babel/types@7.19.0: resolution: {integrity: sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==} @@ -2357,13 +2349,12 @@ packages: '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 - /@codemirror/autocomplete@6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2): + /@codemirror/autocomplete@6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-SjbgWSwNKbyQOiVXtG8DXG2z29zTbmzpGccxMqakVo+vqK8fx3Ai0Ee7is3JqX6dxJOoK0GfP3LfeUK53Ltv7w==} peerDependencies: '@codemirror/language': ^6.0.0 '@codemirror/state': ^6.0.0 '@codemirror/view': ^6.0.0 - '@lezer/common': ^1.0.0 dependencies: '@codemirror/language': 6.6.0 '@codemirror/state': 6.2.0 @@ -2383,7 +2374,7 @@ packages: /@codemirror/lang-javascript@6.1.7: resolution: {integrity: sha512-KXKqxlZ4W6t5I7i2ScmITUD3f/F5Cllk3kj0De9P9mFeYVfhOVOWuDLgYiLpk357u7Xh4dhqjJAnsNPPoTLghQ==} dependencies: - '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2) + '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) '@codemirror/language': 6.6.0 '@codemirror/lint': 6.1.0 '@codemirror/state': 6.2.0 @@ -2440,11 +2431,11 @@ packages: w3c-keyname: 2.2.6 dev: false - /@csound/browser@6.18.7(eslint@8.39.0): + /@csound/browser@6.18.7: resolution: {integrity: sha512-pHC83n1fzV9xp7hkFNBTWYsqkBnOS3qNAA9AJNnu3ZCG35a4rMZ5ydOuFi3qqfkLwRTd+frazabxM/lu0+u0qw==} dependencies: comlink: 4.3.1 - eslint-plugin-n: 15.6.1(eslint@8.39.0) + eslint-plugin-n: 15.6.1 eventemitter3: 4.0.7 google-closure-compiler: 20221102.0.1 google-closure-library: 20221102.0.0 @@ -2883,10 +2874,12 @@ packages: dependencies: eslint: 8.39.0 eslint-visitor-keys: 3.4.0 + dev: true /@eslint-community/regexpp@4.5.1: resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true /@eslint/eslintrc@2.0.2: resolution: {integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==} @@ -2903,10 +2896,12 @@ packages: strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color + dev: true /@eslint/js@8.39.0: resolution: {integrity: sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true /@gar/promisify@1.1.3: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} @@ -2941,13 +2936,16 @@ packages: minimatch: 3.1.2 transitivePeerDependencies: - supports-color + dev: true /@humanwhocodes/module-importer@1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} + dev: true /@humanwhocodes/object-schema@1.2.1: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: true /@hutson/parse-repository-url@3.0.2: resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} @@ -2977,14 +2975,14 @@ packages: engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/sourcemap-codec': 1.4.15 /@jridgewell/gen-mapping@0.3.2: resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.17 /@jridgewell/resolve-uri@3.1.0: @@ -3007,7 +3005,6 @@ packages: /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: true /@jridgewell/trace-mapping@0.3.17: resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} @@ -3194,14 +3191,13 @@ packages: - supports-color dev: false - /@mdx-js/rollup@2.3.0(rollup@3.28.0): + /@mdx-js/rollup@2.3.0: resolution: {integrity: sha512-wLvRfJS/M4UmdqTd+WoaySEE7q4BIejYf1xAHXYvtT1du/1Tl/z2450Gg2+Hu7fh05KwRRiehiTP9Yc/Dtn0fA==} peerDependencies: rollup: '>=2' dependencies: '@mdx-js/mdx': 2.3.0 - '@rollup/pluginutils': 5.0.2(rollup@3.28.0) - rollup: 3.28.0 + '@rollup/pluginutils': 5.0.2 source-map: 0.7.4 vfile: 5.3.6 transitivePeerDependencies: @@ -3773,7 +3769,7 @@ packages: '@codemirror/state': ^6.0.1 '@codemirror/view': ^6.3.0 dependencies: - '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2) + '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) '@codemirror/commands': 6.2.4 '@codemirror/search': 6.2.3 '@codemirror/state': 6.2.0 @@ -3796,6 +3792,26 @@ packages: '@codemirror/view': 6.10.0 dev: false + /@replit/codemirror-vscode-keymap@6.0.2(@codemirror/autocomplete@6.6.0)(@codemirror/commands@6.2.4)(@codemirror/language@6.6.0)(@codemirror/lint@6.1.0)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + resolution: {integrity: sha512-j45qTwGxzpsv82lMD/NreGDORFKSctMDVkGRopaP+OrzSzv+pXDQuU3LnFvKpasyjVT0lf+PKG1v2DSCn/vxxg==} + peerDependencies: + '@codemirror/autocomplete': ^6.0.0 + '@codemirror/commands': ^6.0.0 + '@codemirror/language': ^6.0.0 + '@codemirror/lint': ^6.0.0 + '@codemirror/search': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + dependencies: + '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@codemirror/commands': 6.2.4 + '@codemirror/language': 6.6.0 + '@codemirror/lint': 6.1.0 + '@codemirror/search': 6.2.3 + '@codemirror/state': 6.2.0 + '@codemirror/view': 6.10.0 + dev: false + /@rollup/plugin-babel@5.3.1(@babel/core@7.21.5)(rollup@2.79.1): resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} @@ -3850,7 +3866,7 @@ packages: rollup: 2.79.1 dev: true - /@rollup/pluginutils@5.0.2(rollup@3.28.0): + /@rollup/pluginutils@5.0.2: resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -3862,7 +3878,6 @@ packages: '@types/estree': 1.0.0 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 3.28.0 dev: false /@sigstore/protobuf-specs@0.1.0: @@ -4479,7 +4494,7 @@ packages: '@codemirror/state': '>=6.0.0' '@codemirror/view': '>=6.0.0' dependencies: - '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2) + '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) '@codemirror/commands': 6.2.4 '@codemirror/language': 6.6.0 '@codemirror/lint': 6.1.0 @@ -4488,269 +4503,254 @@ packages: '@codemirror/view': 6.10.0 dev: false - /@uiw/codemirror-theme-abcdef@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-theme-abcdef@4.19.16: resolution: {integrity: sha512-vZHLg35Rhz39FF3HgAeHSZxIOV3/PG8q8v/0dcywCvt1FG9J6OuAifXzePo2nrT/P/qkienbehxzF+DyHHzV5g==} dependencies: - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-androidstudio@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-theme-androidstudio@4.19.16: resolution: {integrity: sha512-jQcMc+F3KmpA9abBuC4IvvCGbX8vOxelX/kgt8kQjrB1WIxBCH3PClJ/puZ1iBHpk9sqHKcPHBNYmpnuWVrFOg==} dependencies: - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-atomone@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-theme-atomone@4.19.16: resolution: {integrity: sha512-do5OwgJ+NZgX06Kjrvw+SdYgs7LYIdpLoNGIdvY99xpZZXWE7grfOjMfxRhEk7dHZ9omK6y/YY47BvgFjRnE4A==} dependencies: - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-aura@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-theme-aura@4.19.16: resolution: {integrity: sha512-bGDEhkKLCYHPkXkH/2s5KOBY+mb/Ss0KR65Bzci05gbvAVkfqN4K0eQ9nchCbJxxobuy99dKVxYlcMHB/Mfzkg==} dependencies: - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-bbedit@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-theme-bbedit@4.19.16: resolution: {integrity: sha512-0tpqBqoesvCqo/yE9nuP+g5vVh3A9CRb8PGJFzhVOrzSfWaYBcilRAi65e7T63qtli0VTNMZnc3si8ygOe11nA==} dependencies: - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-bespin@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-theme-bespin@4.19.16: resolution: {integrity: sha512-WGZeFOzoEArkUG/VAojin26gzNeB6ji2qJGkZM94SL243kLCo1xaoeX2cYQjzYYJn+0ghphVS+jX2vF3MQHH6w==} dependencies: - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-darcula@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-theme-darcula@4.19.16: resolution: {integrity: sha512-Nga4nn+KtbD5DKOlCFJBA/OXcMkbJ98jq6XqMntsHRUbKt3COAg5/g0SbsUsBKGHWdn8jNDzGeAnbLv9ydcFQQ==} dependencies: - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-dracula@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-theme-dracula@4.19.16: resolution: {integrity: sha512-nl0tFT8/kaebqOmTTpOUpGlBK+BdAMTqF42U77pqlmYgUuRtrS3JE8uprc1JAzWGTWMcfXNMfXtwSSbzYZQfcw==} dependencies: - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-duotone@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-theme-duotone@4.19.16: resolution: {integrity: sha512-FDGVN0rM2+VRmV+O9Rd1Q0p3c/ongLkSqgblQxkcr3lUY5M/Tj/mIxuxJGrkDIlxauJAz5p7ia7HSlicX0TPTw==} dependencies: - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-eclipse@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-theme-eclipse@4.19.16: resolution: {integrity: sha512-GGb9ZgLXw0F7SrXRooqSgebo3knPQLQRK0/AKjsjZLUMAw2h8XRc8Y5IQaHUYADuoelxIb6m9cgWruWI0d5g4g==} dependencies: - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-github@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-theme-github@4.19.16: resolution: {integrity: sha512-B3XmfphgnHiRedrP2adHjJsTc12Rw+tXrPmFUTurQrPyIITpCDLl9PJSsaJl9w5AuYhGcBxAeod7CEzMfdL1OA==} dependencies: - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-gruvbox-dark@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-theme-gruvbox-dark@4.19.16: resolution: {integrity: sha512-ymqH4GwGmxixU+hxshJ2vcp4dWW66WMKvox2ifVqIUG24p0yjmFuxINmBX8asj/6LandhSYsGs85lbb7ltYnzg==} dependencies: - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-material@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-theme-material@4.19.16: resolution: {integrity: sha512-Ur5khZLOhhcHXkFsNwcT4v0zijTnEvPAN9jJRXoXwuNR+JR5izYKlBGSPrjy71Vc9fjPHVAl4i3M/uZbQjDuhA==} dependencies: - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-noctis-lilac@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-theme-noctis-lilac@4.19.16: resolution: {integrity: sha512-bDz9glGA3w7ZNCFH7UBmXkzFo6IXTb5NW4y8olfdqJfmsn4IUYDyoj3zYXIGpgCrIpUlqtUyP1djBXyOsfKthQ==} dependencies: - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-nord@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-theme-nord@4.19.16: resolution: {integrity: sha512-8nvVNoKRNdr5xOVmUESJ9grePYk46wc4ElY+jLkfOAsbpYV7YhCFo2fL3SofjK+758HkuIkzsp3hIooKvLyxNg==} dependencies: - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-okaidia@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-theme-okaidia@4.19.16: resolution: {integrity: sha512-c2ZNsWcXfzXixPrYcszRSCvI72Gcu3vCwqlEAMwli3Y6OtwqTrPT493WBgjJcOV+bsjJdg+F0iVEeXFjtFmchQ==} dependencies: - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-solarized@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-theme-solarized@4.19.16: resolution: {integrity: sha512-KXkmjQOBHhzt5Y4kfqiO90ut+j/5wb25YfG+3O4AOcEpO9lmApMkJJq3VEVl4oqqH1kEIYz5B0K5A6wwTK55NQ==} dependencies: - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-sublime@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-theme-sublime@4.19.16: resolution: {integrity: sha512-fKbEMoYm4T5lcjoBy90saXENgysXatc4mwFenRs4vwn0lJfISb/QOgy4WNfUmrwNRYh+XdH6NfPwu5bujZhmzQ==} dependencies: - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-tokyo-night-day@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-theme-tokyo-night-day@4.19.16: resolution: {integrity: sha512-lE43sX4usVXvLBQ3BwrtS8HuD0rnDJ+No3ZFP4soqgQIpby7Mq0DybLOV0RiDBN0lYUaEobwkW0NulMNBoTPrg==} dependencies: - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-tokyo-night-storm@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-theme-tokyo-night-storm@4.19.16: resolution: {integrity: sha512-0lX80vsUoIYSkcNw0gUAC96UdfCjjL8qtWJ7Ov3C98B9XDITNQwgoUdTE23d1zYvZHLzpvx/RW1XKQGyl89oRQ==} dependencies: - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-tokyo-night@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-theme-tokyo-night@4.19.16: resolution: {integrity: sha512-BIDnbjGM0q3Thef67+XFig48oYTSGEoaAnIwOvSt0cNO+siCk3lPTtT55OwdfeYMTANxIgtncpCglU2UJc6gcQ==} dependencies: - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-vscode@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-theme-vscode@4.19.16: resolution: {integrity: sha512-DQa6MOuwGRrxSZexEUs1c4SJiTkDTnC9M+w98kauM3CCe5mEAbQczObse0mVgVPp4g6rXvPdWlVXaj6y8bbFKQ==} dependencies: - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-xcode@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-theme-xcode@4.19.16: resolution: {integrity: sha512-I7UscwaI98n4aK7upHjASjWdEzgRx4+rIAybaFCTAL8e1enmyjjMNkZOpbp4ciwKJUaDpCBKPWf4mj0tkoHb9w==} dependencies: - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-themes-all@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@uiw/codemirror-themes-all@4.19.16: resolution: {integrity: sha512-LXc7SJpo2hp1IeTtI/h86MN+Q4X6kCIsJv5Hi2mH906qSfhuGzqHFw4gfIpPfAWznNROAJXD3/gL/8xic1kEMw==} dependencies: - '@uiw/codemirror-theme-abcdef': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - '@uiw/codemirror-theme-androidstudio': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - '@uiw/codemirror-theme-atomone': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - '@uiw/codemirror-theme-aura': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - '@uiw/codemirror-theme-bbedit': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - '@uiw/codemirror-theme-bespin': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - '@uiw/codemirror-theme-darcula': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - '@uiw/codemirror-theme-dracula': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - '@uiw/codemirror-theme-duotone': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - '@uiw/codemirror-theme-eclipse': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - '@uiw/codemirror-theme-github': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - '@uiw/codemirror-theme-gruvbox-dark': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - '@uiw/codemirror-theme-material': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - '@uiw/codemirror-theme-noctis-lilac': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - '@uiw/codemirror-theme-nord': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - '@uiw/codemirror-theme-okaidia': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - '@uiw/codemirror-theme-solarized': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - '@uiw/codemirror-theme-sublime': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - '@uiw/codemirror-theme-tokyo-night': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - '@uiw/codemirror-theme-tokyo-night-day': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - '@uiw/codemirror-theme-tokyo-night-storm': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - '@uiw/codemirror-theme-vscode': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - '@uiw/codemirror-theme-xcode': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-theme-abcdef': 4.19.16 + '@uiw/codemirror-theme-androidstudio': 4.19.16 + '@uiw/codemirror-theme-atomone': 4.19.16 + '@uiw/codemirror-theme-aura': 4.19.16 + '@uiw/codemirror-theme-bbedit': 4.19.16 + '@uiw/codemirror-theme-bespin': 4.19.16 + '@uiw/codemirror-theme-darcula': 4.19.16 + '@uiw/codemirror-theme-dracula': 4.19.16 + '@uiw/codemirror-theme-duotone': 4.19.16 + '@uiw/codemirror-theme-eclipse': 4.19.16 + '@uiw/codemirror-theme-github': 4.19.16 + '@uiw/codemirror-theme-gruvbox-dark': 4.19.16 + '@uiw/codemirror-theme-material': 4.19.16 + '@uiw/codemirror-theme-noctis-lilac': 4.19.16 + '@uiw/codemirror-theme-nord': 4.19.16 + '@uiw/codemirror-theme-okaidia': 4.19.16 + '@uiw/codemirror-theme-solarized': 4.19.16 + '@uiw/codemirror-theme-sublime': 4.19.16 + '@uiw/codemirror-theme-tokyo-night': 4.19.16 + '@uiw/codemirror-theme-tokyo-night-day': 4.19.16 + '@uiw/codemirror-theme-tokyo-night-storm': 4.19.16 + '@uiw/codemirror-theme-vscode': 4.19.16 + '@uiw/codemirror-theme-xcode': 4.19.16 + '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: - - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false + /@uiw/codemirror-themes@4.19.16: + resolution: {integrity: sha512-c16zrvMEEfNkYydjwa6Eq+aDrYCbtmt4O0jBWPX1P4CxFATCn59aeW9HFZ4uqMko8aYOiTupOsizxlJ+MBwW2Q==} + peerDependencies: + '@codemirror/state': '>=6.0.0' + '@codemirror/view': '>=6.0.0' + dependencies: + '@codemirror/language': 6.6.0 + dev: false + /@uiw/codemirror-themes@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-c16zrvMEEfNkYydjwa6Eq+aDrYCbtmt4O0jBWPX1P4CxFATCn59aeW9HFZ4uqMko8aYOiTupOsizxlJ+MBwW2Q==} peerDependencies: @@ -4763,14 +4763,11 @@ packages: '@codemirror/view': 6.10.0 dev: false - /@uiw/react-codemirror@4.19.16(@babel/runtime@7.20.13)(@codemirror/autocomplete@6.6.0)(@codemirror/language@6.6.0)(@codemirror/lint@6.1.0)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/theme-one-dark@6.1.0)(@codemirror/view@6.10.0)(codemirror@6.0.1)(react-dom@18.2.0)(react@18.2.0): + /@uiw/react-codemirror@4.19.16(@codemirror/autocomplete@6.6.0)(@codemirror/language@6.6.0)(@codemirror/lint@6.1.0)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-uElraR7Mvwz2oZKrmtF5hmIB8dAlIiU65nfg484e/V9k4PV6/5KtPUQL3JPO4clH2pcd+TQqRTQrFFkP/D25ew==} peerDependencies: - '@babel/runtime': '>=7.11.0' '@codemirror/state': '>=6.0.0' - '@codemirror/theme-one-dark': '>=6.0.0' '@codemirror/view': '>=6.0.0' - codemirror: '>=6.0.0' react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: @@ -4780,7 +4777,7 @@ packages: '@codemirror/theme-one-dark': 6.1.0 '@codemirror/view': 6.10.0 '@uiw/codemirror-extensions-basic-setup': 4.19.16(@codemirror/autocomplete@6.6.0)(@codemirror/commands@6.2.4)(@codemirror/language@6.6.0)(@codemirror/lint@6.1.0)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - codemirror: 6.0.1(@lezer/common@1.0.2) + codemirror: 6.0.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: @@ -4907,12 +4904,21 @@ packages: event-target-shim: 5.0.1 dev: true + /acorn-jsx@5.3.2(acorn@8.10.0): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.10.0 + dev: false + /acorn-jsx@5.3.2(acorn@8.8.2): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.8.2 + dev: true /acorn-walk@8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} @@ -4923,7 +4929,6 @@ packages: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} hasBin: true - dev: true /acorn@8.8.2: resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} @@ -4968,6 +4973,7 @@ packages: fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 + dev: true /ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} @@ -5104,6 +5110,7 @@ packages: /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true /array-back@1.0.4: resolution: {integrity: sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==} @@ -5451,16 +5458,6 @@ packages: dependencies: fill-range: 7.0.1 - /browserslist@4.21.4: - resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001449 - electron-to-chromium: 1.4.284 - node-releases: 2.0.8 - update-browserslist-db: 1.0.10(browserslist@4.21.4) - /browserslist@4.21.5: resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -5606,6 +5603,7 @@ packages: /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} + dev: true /camelcase-css@2.0.1: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} @@ -5629,9 +5627,6 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - /caniuse-lite@1.0.30001449: - resolution: {integrity: sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw==} - /caniuse-lite@1.0.30001481: resolution: {integrity: sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==} @@ -5866,18 +5861,16 @@ packages: resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} engines: {node: '>=0.10.0'} - /codemirror@6.0.1(@lezer/common@1.0.2): + /codemirror@6.0.1: resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==} dependencies: - '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2) + '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) '@codemirror/commands': 6.2.4 '@codemirror/language': 6.6.0 '@codemirror/lint': 6.1.0 '@codemirror/search': 6.2.3 '@codemirror/state': 6.2.0 '@codemirror/view': 6.10.0 - transitivePeerDependencies: - - '@lezer/common' dev: false /collect-all@1.0.4: @@ -6504,6 +6497,7 @@ packages: engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 + dev: true /dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} @@ -6782,6 +6776,7 @@ packages: /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} + dev: true /escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} @@ -6838,13 +6833,12 @@ packages: - supports-color dev: true - /eslint-plugin-es@4.1.0(eslint@8.39.0): + /eslint-plugin-es@4.1.0: resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.39.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: false @@ -6881,16 +6875,15 @@ packages: - supports-color dev: true - /eslint-plugin-n@15.6.1(eslint@8.39.0): + /eslint-plugin-n@15.6.1: resolution: {integrity: sha512-R9xw9OtCRxxaxaszTQmQAlPgM+RdGjaL1akWuY/Fv9fRAi8Wj4CUKc6iYVG8QNRjRuo8/BqVYIpfqberJUEacA==} engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' dependencies: builtins: 5.0.1 - eslint: 8.39.0 - eslint-plugin-es: 4.1.0(eslint@8.39.0) - eslint-utils: 3.0.0(eslint@8.39.0) + eslint-plugin-es: 4.1.0 + eslint-utils: 3.0.0 ignore: 5.2.4 is-core-module: 2.11.0 minimatch: 3.1.2 @@ -6904,6 +6897,7 @@ packages: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 + dev: true /eslint-utils@2.1.0: resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} @@ -6912,13 +6906,12 @@ packages: eslint-visitor-keys: 1.3.0 dev: false - /eslint-utils@3.0.0(eslint@8.39.0): + /eslint-utils@3.0.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.39.0 eslint-visitor-keys: 2.1.0 dev: false @@ -6940,6 +6933,7 @@ packages: /eslint-visitor-keys@3.4.0: resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true /eslint@8.39.0: resolution: {integrity: sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==} @@ -6988,6 +6982,7 @@ packages: text-table: 0.2.0 transitivePeerDependencies: - supports-color + dev: true /espree@9.5.1: resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==} @@ -6996,6 +6991,7 @@ packages: acorn: 8.8.2 acorn-jsx: 5.3.2(acorn@8.8.2) eslint-visitor-keys: 3.4.0 + dev: true /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} @@ -7014,12 +7010,14 @@ packages: engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 + dev: true /esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 + dev: true /estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} @@ -7167,6 +7165,7 @@ packages: /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true /fast-glob@3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} @@ -7201,6 +7200,7 @@ packages: /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} @@ -7242,6 +7242,7 @@ packages: engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.0.4 + dev: true /file-set@4.0.2: resolution: {integrity: sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==} @@ -7330,6 +7331,7 @@ packages: dependencies: flatted: 3.2.7 rimraf: 3.0.2 + dev: true /flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} @@ -7338,6 +7340,7 @@ packages: /flatted@3.2.7: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + dev: true /follow-redirects@1.15.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} @@ -7712,6 +7715,7 @@ packages: engines: {node: '>=8'} dependencies: type-fest: 0.20.2 + dev: true /globalthis@1.0.3: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} @@ -7804,6 +7808,7 @@ packages: /grapheme-splitter@1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: true /gray-matter@4.0.3: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} @@ -8132,6 +8137,7 @@ packages: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 + dev: true /import-local@3.1.0: resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} @@ -8148,6 +8154,7 @@ packages: /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} + dev: true /indent-string@4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} @@ -8423,6 +8430,7 @@ packages: /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} + dev: true /is-plain-obj@1.1.0: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} @@ -8614,6 +8622,7 @@ packages: /js-sdsl@4.3.0: resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==} + dev: true /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -8630,6 +8639,7 @@ packages: hasBin: true dependencies: argparse: 2.0.1 + dev: true /js2xmlparser@4.0.2: resolution: {integrity: sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==} @@ -8729,6 +8739,7 @@ packages: /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true /json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} @@ -8740,6 +8751,7 @@ packages: /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true /json-stringify-nice@1.1.4: resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} @@ -8927,6 +8939,7 @@ packages: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 + dev: true /libnpmaccess@6.0.3: resolution: {integrity: sha512-4tkfUZprwvih2VUZYMozL7EMKgQ5q9VW2NtRyxWtQWlkLTAWHRklcAvBN49CVqEkhUw7vTX2fNgB5LzgUucgYg==} @@ -9622,8 +9635,8 @@ packages: /micromark-extension-mdxjs@1.0.0: resolution: {integrity: sha512-TZZRZgeHvtgm+IhtgC2+uDMR7h8eTKF0QUX9YsgoL9+bADBpBY6SiLvWqnBlLbCEevITmTqmEuY3FoxMKVs1rQ==} dependencies: - acorn: 8.8.2 - acorn-jsx: 5.3.2(acorn@8.8.2) + acorn: 8.10.0 + acorn-jsx: 5.3.2(acorn@8.10.0) micromark-extension-mdx-expression: 1.0.4 micromark-extension-mdx-jsx: 1.0.3 micromark-extension-mdx-md: 1.0.0 @@ -10129,6 +10142,7 @@ packages: /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true /negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} @@ -10238,7 +10252,7 @@ packages: resolution: {integrity: sha512-58APXoMXpmmU+oVBJFajhTCoD8d/OGtngnVAWzIo2A8yn0IXwBzvIVIsTzoie/SrA37u+1hnpNz2HMWx/VIqlw==} engines: {node: '>=12'} dependencies: - '@babel/parser': 7.20.13 + '@babel/parser': 7.21.5 dev: false /nopt@5.0.0: @@ -10666,6 +10680,7 @@ packages: prelude-ls: 1.2.1 type-check: 0.4.0 word-wrap: 1.2.3 + dev: true /ora@5.4.1: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} @@ -10882,6 +10897,7 @@ packages: engines: {node: '>=6'} dependencies: callsites: 3.1.0 + dev: true /parse-conflict-json@3.0.1: resolution: {integrity: sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==} @@ -11264,6 +11280,7 @@ packages: /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} + dev: true /prettier-plugin-astro@0.7.2: resolution: {integrity: sha512-mmifnkG160BtC727gqoimoxnZT/dwr8ASxpoGGl6EHevhfblSOeu+pwH1LAm5Qu1MynizktztFujHHaijLCkww==} @@ -11397,6 +11414,7 @@ packages: /punycode@2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} + dev: true /q@1.5.1: resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} @@ -11897,6 +11915,7 @@ packages: /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} + dev: true /resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} @@ -12579,6 +12598,7 @@ packages: /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + dev: true /strip-literal@1.0.1: resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==} @@ -12834,6 +12854,7 @@ packages: /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true /thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} @@ -13013,6 +13034,7 @@ packages: engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 + dev: true /type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} @@ -13036,6 +13058,7 @@ packages: /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} + dev: true /type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} @@ -13322,16 +13345,6 @@ packages: engines: {node: '>=4'} dev: true - /update-browserslist-db@1.0.10(browserslist@4.21.4): - resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.21.4 - escalade: 3.1.1 - picocolors: 1.0.0 - /update-browserslist-db@1.0.10(browserslist@4.21.5): resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} hasBin: true @@ -13346,6 +13359,7 @@ packages: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.0 + dev: true /use-sync-external-store@1.2.0(react@18.2.0): resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} @@ -13472,21 +13486,20 @@ packages: - terser dev: true - /vite-plugin-pwa@0.16.5(vite@4.4.5)(workbox-build@7.0.0)(workbox-window@7.0.0): + /vite-plugin-pwa@0.16.5(workbox-window@7.0.0): resolution: {integrity: sha512-Ahol4dwhMP2UHPQXkllSlXbihOaDFnvBIDPmAxoSZ1EObBUJGP4CMRyCyAVkIHjd6/H+//vH0DM2ON+XxHr81g==} engines: {node: '>=16.0.0'} peerDependencies: vite: ^3.1.0 || ^4.0.0 - workbox-build: ^7.0.0 workbox-window: ^7.0.0 dependencies: debug: 4.3.4 fast-glob: 3.3.1 pretty-bytes: 6.1.1 - vite: 4.4.5(@types/node@18.16.3) workbox-build: 7.0.0 workbox-window: 7.0.0 transitivePeerDependencies: + - '@types/babel__core' - supports-color dev: true @@ -13522,6 +13535,41 @@ packages: fsevents: 2.3.2 dev: true + /vite@4.4.5: + resolution: {integrity: sha512-4m5kEtAWHYr0O1Fu7rZp64CfO1PsRGZlD3TAB32UmQlpd7qg15VF7ROqGN5CyqN7HFuwr7ICNM2+fDWRqFEKaA==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.18.20 + postcss: 8.4.27 + rollup: 3.28.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + /vite@4.4.5(@types/node@18.16.3): resolution: {integrity: sha512-4m5kEtAWHYr0O1Fu7rZp64CfO1PsRGZlD3TAB32UmQlpd7qg15VF7ROqGN5CyqN7HFuwr7ICNM2+fDWRqFEKaA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -13567,6 +13615,71 @@ packages: dependencies: vite: 4.4.5(@types/node@18.16.3) + /vitest@0.33.0: + resolution: {integrity: sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ==} + engines: {node: '>=v14.18.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' + playwright: '*' + safaridriver: '*' + webdriverio: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true + dependencies: + '@types/chai': 4.3.5 + '@types/chai-subset': 1.3.3 + '@types/node': 18.16.3 + '@vitest/expect': 0.33.0 + '@vitest/runner': 0.33.0 + '@vitest/snapshot': 0.33.0 + '@vitest/spy': 0.33.0 + '@vitest/utils': 0.33.0 + acorn: 8.10.0 + acorn-walk: 8.2.0 + cac: 6.7.14 + chai: 4.3.7 + debug: 4.3.4 + local-pkg: 0.4.3 + magic-string: 0.30.1 + pathe: 1.1.1 + picocolors: 1.0.0 + std-env: 3.3.3 + strip-literal: 1.0.1 + tinybench: 2.5.0 + tinypool: 0.6.0 + vite: 4.4.5(@types/node@18.16.3) + vite-node: 0.33.0(@types/node@18.16.3) + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + /vitest@0.33.0(@vitest/ui@0.28.0): resolution: {integrity: sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ==} engines: {node: '>=v14.18.0'} @@ -14183,5 +14296,5 @@ packages: vite-plugin-pwa: '>=0.16.5 <1' dependencies: astro: 2.3.2(@types/node@18.16.3) - vite-plugin-pwa: 0.16.5(vite@4.4.5)(workbox-build@7.0.0)(workbox-window@7.0.0) + vite-plugin-pwa: 0.16.5(workbox-window@7.0.0) dev: true diff --git a/website/src/repl/Footer.jsx b/website/src/repl/Footer.jsx index e824d43f..7aa59be7 100644 --- a/website/src/repl/Footer.jsx +++ b/website/src/repl/Footer.jsx @@ -436,7 +436,7 @@ function SettingsTab({ scheduler }) { settingsMap.setKey('keybindings', keybindings)} - items={{ codemirror: 'Codemirror', vim: 'Vim', emacs: 'Emacs' }} + items={{ codemirror: 'Codemirror', vim: 'Vim', emacs: 'Emacs', vscodeExtension: 'VSCode' }} > From 9ceab0f29404db8d3e8013a067d699e65abdc152 Mon Sep 17 00:00:00 2001 From: Alex McLean Date: Wed, 1 Nov 2023 21:22:33 +0000 Subject: [PATCH 12/79] Fix chunk, add fastChunk and repeatCycles (#712) * Match behaviour of chunk with tidal, add fastChunk for old strudel behaviour. Also adds repeatCycles. fixes #689 * documentation --- packages/core/pattern.mjs | 43 +++++++++++-- packages/core/test/pattern.test.mjs | 19 ++++++ test/__snapshots__/examples.test.mjs.snap | 76 ++++++++++++++++------- 3 files changed, 113 insertions(+), 25 deletions(-) diff --git a/packages/core/pattern.mjs b/packages/core/pattern.mjs index 4dcf02e7..dcf5da1b 100644 --- a/packages/core/pattern.mjs +++ b/packages/core/pattern.mjs @@ -2100,23 +2100,43 @@ export const { iterBack, iterback } = register(['iterBack', 'iterback'], functio return _iter(times, pat, true); }); +/** + * Repeats each cycle the given number of times. + * @name repeatCycles + * @memberof Pattern + * @returns Pattern + * @example + * note(irand(12).add(34)).segment(4).repeatCycles(2).s("gm_acoustic_guitar_nylon") + */ +const _repeatCycles = function (n, pat) { + return slowcat(...Array(n).fill(pat)); +}; + +const { repeatCycles } = register('repeatCycles', _repeatCycles); + /** * Divides a pattern into a given number of parts, then cycles through those parts in turn, applying the given function to each part in turn (one part per cycle). * @name chunk + * @synonyms slowChunk, slowchunk * @memberof Pattern * @returns Pattern * @example * "0 1 2 3".chunk(4, x=>x.add(7)).scale('A minor').note() */ -const _chunk = function (n, func, pat, back = false) { +const _chunk = function (n, func, pat, back = false, fast = false) { const binary = Array(n - 1).fill(false); binary.unshift(true); - const binary_pat = _iter(n, sequence(...binary), back); + // Invert the 'back' because we want to shift the pattern forwards, + // and so time backwards + const binary_pat = _iter(n, sequence(...binary), !back); + if (!fast) { + pat = pat.repeatCycles(n); + } return pat.when(binary_pat, func); }; -export const chunk = register('chunk', function (n, func, pat) { - return _chunk(n, func, pat, false); +const { chunk, slowchunk, slowChunk } = register(['chunk', 'slowchunk', 'slowChunk'], function (n, func, pat) { + return _chunk(n, func, pat, false, false); }); /** @@ -2132,6 +2152,21 @@ export const { chunkBack, chunkback } = register(['chunkBack', 'chunkback'], fun return _chunk(n, func, pat, true); }); +/** + * Like `chunk`, but the cycles of the source pattern aren't repeated + * for each set of chunks. + * @name fastChunk + * @synonyms fastchunk + * @memberof Pattern + * @returns Pattern + * @example + * "<0 8> 1 2 3 4 5 6 7".fastChunk(4, x => x.color('red')).slow(4).scale("C2:major").note() + .s("folkharp") + */ +const { fastchunk, fastChunk } = register(['fastchunk', 'fastChunk'], function (n, func, pat) { + return _chunk(n, func, pat, false, true); +}); + // TODO - redefine elsewhere in terms of mask export const bypass = register('bypass', function (on, pat) { on = Boolean(parseInt(on)); diff --git a/packages/core/test/pattern.test.mjs b/packages/core/test/pattern.test.mjs index c8267306..f4a03110 100644 --- a/packages/core/test/pattern.test.mjs +++ b/packages/core/test/pattern.test.mjs @@ -1003,4 +1003,23 @@ describe('Pattern', () => { ); }); }); + describe('chunk', () => { + it('Processes each cycle of the source pattern multiple times, once for each chunk', () => { + expect(sequence(0, 1, 2, 3).slow(2).chunk(2, add(10)).fast(4).firstCycleValues).toStrictEqual([ + 10, 1, 0, 11, 12, 3, 2, 13, + ]); + }); + }); + describe('fastChunk', () => { + it('Unlike chunk, cycles of the source pattern proceed cycle-by-cycle', () => { + expect(sequence(0, 1, 2, 3).slow(2).fastChunk(2, add(10)).fast(4).firstCycleValues).toStrictEqual([ + 10, 1, 2, 13, 10, 1, 2, 13, + ]); + }); + }); + describe('repeatCycles', () => { + it('Repeats each cycle of the source pattern the given number of times', () => { + expect(slowcat(0, 1).repeatCycles(2).fast(6).firstCycleValues).toStrictEqual([0, 0, 1, 1, 0, 0]); + }); + }); }); diff --git a/test/__snapshots__/examples.test.mjs.snap b/test/__snapshots__/examples.test.mjs.snap index ae1b61af..0963638f 100644 --- a/test/__snapshots__/examples.test.mjs.snap +++ b/test/__snapshots__/examples.test.mjs.snap @@ -1115,27 +1115,6 @@ exports[`runs examples > example "chop" example index 0 1`] = ` `; exports[`runs examples > example "chunk" example index 0 1`] = ` -[ - "[ 0/1 → 1/4 | note:A4 ]", - "[ 1/4 → 1/2 | note:B3 ]", - "[ 1/2 → 3/4 | note:C4 ]", - "[ 3/4 → 1/1 | note:D4 ]", - "[ 1/1 → 5/4 | note:A3 ]", - "[ 5/4 → 3/2 | note:B3 ]", - "[ 3/2 → 7/4 | note:C4 ]", - "[ 7/4 → 2/1 | note:D5 ]", - "[ 2/1 → 9/4 | note:A3 ]", - "[ 9/4 → 5/2 | note:B3 ]", - "[ 5/2 → 11/4 | note:C5 ]", - "[ 11/4 → 3/1 | note:D4 ]", - "[ 3/1 → 13/4 | note:A3 ]", - "[ 13/4 → 7/2 | note:B4 ]", - "[ 7/2 → 15/4 | note:C4 ]", - "[ 15/4 → 4/1 | note:D4 ]", -] -`; - -exports[`runs examples > example "chunkBack" example index 0 1`] = ` [ "[ 0/1 → 1/4 | note:A4 ]", "[ 1/4 → 1/2 | note:B3 ]", @@ -1156,6 +1135,27 @@ exports[`runs examples > example "chunkBack" example index 0 1`] = ` ] `; +exports[`runs examples > example "chunkBack" example index 0 1`] = ` +[ + "[ 0/1 → 1/4 | note:A4 ]", + "[ 1/4 → 1/2 | note:B3 ]", + "[ 1/2 → 3/4 | note:C4 ]", + "[ 3/4 → 1/1 | note:D4 ]", + "[ 1/1 → 5/4 | note:A3 ]", + "[ 5/4 → 3/2 | note:B3 ]", + "[ 3/2 → 7/4 | note:C4 ]", + "[ 7/4 → 2/1 | note:D5 ]", + "[ 2/1 → 9/4 | note:A3 ]", + "[ 9/4 → 5/2 | note:B3 ]", + "[ 5/2 → 11/4 | note:C5 ]", + "[ 11/4 → 3/1 | note:D4 ]", + "[ 3/1 → 13/4 | note:A3 ]", + "[ 13/4 → 7/2 | note:B4 ]", + "[ 7/2 → 15/4 | note:C4 ]", + "[ 15/4 → 4/1 | note:D4 ]", +] +`; + exports[`runs examples > example "clip" example index 0 1`] = ` [ "[ 0/1 → 1/4 | note:c s:piano clip:0.5 ]", @@ -1857,6 +1857,19 @@ exports[`runs examples > example "fast" example index 0 1`] = ` ] `; +exports[`runs examples > example "fastChunk" example index 0 1`] = ` +[ + "[ 0/1 → 1/2 | note:C2 s:folkharp ]", + "[ 1/2 → 1/1 | note:D2 s:folkharp ]", + "[ 1/1 → 3/2 | note:E2 s:folkharp ]", + "[ 3/2 → 2/1 | note:F2 s:folkharp ]", + "[ 2/1 → 5/2 | note:G2 s:folkharp ]", + "[ 5/2 → 3/1 | note:A2 s:folkharp ]", + "[ 3/1 → 7/2 | note:B2 s:folkharp ]", + "[ 7/2 → 4/1 | note:C3 s:folkharp ]", +] +`; + exports[`runs examples > example "fastGap" example index 0 1`] = ` [ "[ 0/1 → 1/4 | s:bd ]", @@ -3646,6 +3659,27 @@ exports[`runs examples > example "release" example index 0 1`] = ` ] `; +exports[`runs examples > example "repeatCycles" example index 0 1`] = ` +[ + "[ 0/1 → 1/4 | note:42 s:gm_acoustic_guitar_nylon ]", + "[ 1/4 → 1/2 | note:38 s:gm_acoustic_guitar_nylon ]", + "[ 1/2 → 3/4 | note:35 s:gm_acoustic_guitar_nylon ]", + "[ 3/4 → 1/1 | note:38 s:gm_acoustic_guitar_nylon ]", + "[ 1/1 → 5/4 | note:42 s:gm_acoustic_guitar_nylon ]", + "[ 5/4 → 3/2 | note:38 s:gm_acoustic_guitar_nylon ]", + "[ 3/2 → 7/4 | note:35 s:gm_acoustic_guitar_nylon ]", + "[ 7/4 → 2/1 | note:38 s:gm_acoustic_guitar_nylon ]", + "[ 2/1 → 9/4 | note:42 s:gm_acoustic_guitar_nylon ]", + "[ 9/4 → 5/2 | note:36 s:gm_acoustic_guitar_nylon ]", + "[ 5/2 → 11/4 | note:39 s:gm_acoustic_guitar_nylon ]", + "[ 11/4 → 3/1 | note:41 s:gm_acoustic_guitar_nylon ]", + "[ 3/1 → 13/4 | note:42 s:gm_acoustic_guitar_nylon ]", + "[ 13/4 → 7/2 | note:36 s:gm_acoustic_guitar_nylon ]", + "[ 7/2 → 15/4 | note:39 s:gm_acoustic_guitar_nylon ]", + "[ 15/4 → 4/1 | note:41 s:gm_acoustic_guitar_nylon ]", +] +`; + exports[`runs examples > example "reset" example index 0 1`] = ` [ "[ 0/1 → 1/4 | s:hh ]", From b141e1ee6809b2a492d8fd06ab3b0358300fdce9 Mon Sep 17 00:00:00 2001 From: Dsm0 Date: Wed, 1 Nov 2023 17:30:59 -0400 Subject: [PATCH 13/79] (hopefully) fixed broken lock file --- pnpm-lock.yaml | 40 ++++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7910ba6b..92a7dfec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4508,6 +4508,7 @@ packages: dependencies: '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4517,6 +4518,7 @@ packages: dependencies: '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4526,6 +4528,7 @@ packages: dependencies: '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4535,6 +4538,7 @@ packages: dependencies: '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4544,6 +4548,7 @@ packages: dependencies: '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4553,6 +4558,7 @@ packages: dependencies: '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4562,6 +4568,7 @@ packages: dependencies: '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4571,6 +4578,7 @@ packages: dependencies: '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4580,6 +4588,7 @@ packages: dependencies: '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4589,6 +4598,7 @@ packages: dependencies: '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4598,6 +4608,7 @@ packages: dependencies: '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4607,6 +4618,7 @@ packages: dependencies: '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4616,6 +4628,7 @@ packages: dependencies: '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4625,6 +4638,7 @@ packages: dependencies: '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4634,6 +4648,7 @@ packages: dependencies: '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4643,6 +4658,7 @@ packages: dependencies: '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4652,6 +4668,7 @@ packages: dependencies: '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4661,6 +4678,7 @@ packages: dependencies: '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4670,6 +4688,7 @@ packages: dependencies: '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4679,6 +4698,7 @@ packages: dependencies: '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4688,6 +4708,7 @@ packages: dependencies: '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4697,6 +4718,7 @@ packages: dependencies: '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4706,6 +4728,7 @@ packages: dependencies: '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4738,6 +4761,7 @@ packages: '@uiw/codemirror-theme-xcode': 4.19.16 '@uiw/codemirror-themes': 4.19.16 transitivePeerDependencies: + - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false @@ -4745,6 +4769,7 @@ packages: /@uiw/codemirror-themes@4.19.16: resolution: {integrity: sha512-c16zrvMEEfNkYydjwa6Eq+aDrYCbtmt4O0jBWPX1P4CxFATCn59aeW9HFZ4uqMko8aYOiTupOsizxlJ+MBwW2Q==} peerDependencies: + '@codemirror/language': '>=6.0.0' '@codemirror/state': '>=6.0.0' '@codemirror/view': '>=6.0.0' dependencies: @@ -4794,7 +4819,7 @@ packages: vite-plugin-pwa: '>=0.16.5 <1' dependencies: astro: 2.3.2(@types/node@18.16.3) - vite-plugin-pwa: 0.16.5(vite@4.4.5)(workbox-build@7.0.0)(workbox-window@7.0.0) + vite-plugin-pwa: 0.16.5(workbox-window@7.0.0) dev: true /@vitejs/plugin-react@4.0.0(vite@4.3.3): @@ -14295,16 +14320,3 @@ packages: /zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - - file:website/vite-pwa-astro-0.1.3.tgz(astro@2.3.2)(vite-plugin-pwa@0.16.5): - resolution: {integrity: sha512-CI7RC86z6WzQ1pskqHLYPaMhphU8B6QphrkQ9hHplhA7D4zpeTW7pKStn5dysHfM8uXliIX4TykyNquxop8AQA==, tarball: file:website/vite-pwa-astro-0.1.3.tgz} - id: file:website/vite-pwa-astro-0.1.3.tgz - name: '@vite-pwa/astro' - version: 0.1.3 - peerDependencies: - astro: ^1.6.0 || ^2.0.0 || ^3.0.0 - vite-plugin-pwa: '>=0.16.5 <1' - dependencies: - astro: 2.3.2(@types/node@18.16.3) - vite-plugin-pwa: 0.16.5(workbox-window@7.0.0) - dev: true \ No newline at end of file From 1e5edfca26210e3f38281b66d39a5e933c2e2103 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Wed, 1 Nov 2023 22:40:23 +0100 Subject: [PATCH 14/79] Update CONTRIBUTING.md fix prettier instructions --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2f69b27b..467a9391 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -83,7 +83,7 @@ Please report any problems you've had with the setup instructions! To make sure the code changes only where it should, we are using prettier to unify the code style. -- You can format all files at once by running `pnpm prettier` from the project root +- You can format all files at once by running `pnpm codeformat` from the project root - Run `pnpm format-check` from the project root to check if all files are well formatted If you use VSCode, you can From 0c2838cc90b944b0425bc3d4e4bbef7ba59adaba Mon Sep 17 00:00:00 2001 From: Dsm0 Date: Wed, 1 Nov 2023 17:55:40 -0400 Subject: [PATCH 15/79] fixed style issues --- packages/react/src/components/CodeMirror6.jsx | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/react/src/components/CodeMirror6.jsx b/packages/react/src/components/CodeMirror6.jsx index 6d7424a1..b74c5d4b 100644 --- a/packages/react/src/components/CodeMirror6.jsx +++ b/packages/react/src/components/CodeMirror6.jsx @@ -70,10 +70,7 @@ export default function CodeMirror({ }, { provide: (plugin) => { - return Prec.highest(keymap.of([ - ...vscodeKeymap - , - ])); + return Prec.highest(keymap.of([...vscodeKeymap])); }, }, ); From 8d3ba2a8cd38e8d0c1040998f1432c39099606e6 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 2 Nov 2023 08:29:27 +0100 Subject: [PATCH 16/79] fix: share copy to clipboard + alert --- src-tauri/Cargo.lock | 91 +++++++++++++++++++++++++++++++++++++++ src-tauri/Cargo.toml | 2 +- src-tauri/tauri.conf.json | 6 +++ website/src/repl/Repl.jsx | 7 ++- 4 files changed, 104 insertions(+), 2 deletions(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 38fce20b..d1f74563 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -1727,6 +1727,17 @@ dependencies = [ "objc_exception", ] +[[package]] +name = "objc-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +dependencies = [ + "block", + "objc", + "objc_id", +] + [[package]] name = "objc_exception" version = "0.1.2" @@ -2190,6 +2201,30 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" +[[package]] +name = "rfd" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0149778bd99b6959285b0933288206090c50e2327f47a9c463bfdbf45c8823ea" +dependencies = [ + "block", + "dispatch", + "glib-sys", + "gobject-sys", + "gtk-sys", + "js-sys", + "lazy_static", + "log", + "objc", + "objc-foundation", + "objc_id", + "raw-window-handle", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows 0.37.0", +] + [[package]] name = "rosc" version = "0.10.1" @@ -2696,6 +2731,7 @@ dependencies = [ "percent-encoding", "rand 0.8.5", "raw-window-handle", + "rfd", "semver", "serde", "serde_json", @@ -3251,6 +3287,18 @@ dependencies = [ "wasm-bindgen-shared", ] +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "wasm-bindgen-macro" version = "0.2.87" @@ -3406,6 +3454,19 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647" +dependencies = [ + "windows_aarch64_msvc 0.37.0", + "windows_i686_gnu 0.37.0", + "windows_i686_msvc 0.37.0", + "windows_x86_64_gnu 0.37.0", + "windows_x86_64_msvc 0.37.0", +] + [[package]] name = "windows" version = "0.39.0" @@ -3512,6 +3573,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +[[package]] +name = "windows_aarch64_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a" + [[package]] name = "windows_aarch64_msvc" version = "0.39.0" @@ -3530,6 +3597,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +[[package]] +name = "windows_i686_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1" + [[package]] name = "windows_i686_gnu" version = "0.39.0" @@ -3548,6 +3621,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +[[package]] +name = "windows_i686_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c" + [[package]] name = "windows_i686_msvc" version = "0.39.0" @@ -3566,6 +3645,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +[[package]] +name = "windows_x86_64_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d" + [[package]] name = "windows_x86_64_gnu" version = "0.39.0" @@ -3596,6 +3681,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +[[package]] +name = "windows_x86_64_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d" + [[package]] name = "windows_x86_64_msvc" version = "0.39.0" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 35aab489..ece4f6c4 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -17,7 +17,7 @@ tauri-build = { version = "1.4.0", features = [] } [dependencies] serde_json = "1.0" serde = { version = "1.0", features = ["derive"] } -tauri = { version = "1.4.0", features = ["fs-all"] } +tauri = { version = "1.4.0", features = [ "dialog-all", "clipboard-write-text", "fs-all"] } midir = "0.9.1" tokio = { version = "1.29.0", features = ["full"] } rosc = "0.10.1" diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index bbd30e26..2ac3c79b 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -13,6 +13,12 @@ }, "tauri": { "allowlist": { + "dialog": { + "all": true + }, + "clipboard": { + "writeText": true + }, "all": false, "fs": { "all": true, diff --git a/website/src/repl/Repl.jsx b/website/src/repl/Repl.jsx index 7f0f57ac..d9eb7001 100644 --- a/website/src/repl/Repl.jsx +++ b/website/src/repl/Repl.jsx @@ -23,6 +23,7 @@ import { settingPatterns } from '../settings.mjs'; import { code2hash, hash2code } from './helpers.mjs'; import { isTauri } from '../tauri.mjs'; import { useWidgets } from '@strudel.cycles/react/src/hooks/useWidgets.mjs'; +import { writeText } from '@tauri-apps/api/clipboard'; const { latestCode } = settingsMap.get(); @@ -270,7 +271,11 @@ export function Repl({ embedded = false }) { if (!error) { setLastShared(activeCode || code); // copy shareUrl to clipboard - await navigator.clipboard.writeText(shareUrl); + if (isTauri()) { + await writeText(shareUrl); + } else { + await navigator.clipboard.writeText(shareUrl); + } const message = `Link copied to clipboard: ${shareUrl}`; alert(message); // alert(message); From 638f5c7323642214f9a2ae28eca8fcc31006f264 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 2 Nov 2023 08:48:11 +0100 Subject: [PATCH 17/79] rename bindings key --- packages/react/src/components/CodeMirror6.jsx | 3 +-- website/src/repl/Footer.jsx | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/react/src/components/CodeMirror6.jsx b/packages/react/src/components/CodeMirror6.jsx index b74c5d4b..63d4d5a1 100644 --- a/packages/react/src/components/CodeMirror6.jsx +++ b/packages/react/src/components/CodeMirror6.jsx @@ -1,5 +1,4 @@ import { autocompletion } from '@codemirror/autocomplete'; -import { selectAll } from '@codemirror/commands'; import { Prec } from '@codemirror/state'; import { javascript, javascriptLanguage } from '@codemirror/lang-javascript'; import { ViewPlugin, EditorView, keymap } from '@codemirror/view'; @@ -82,7 +81,7 @@ export default function CodeMirror({ let bindings = { vim, emacs, - vscodeExtension, + vscode: vscodeExtension, }; if (bindings[keybindings]) { diff --git a/website/src/repl/Footer.jsx b/website/src/repl/Footer.jsx index 7aa59be7..9fb783a4 100644 --- a/website/src/repl/Footer.jsx +++ b/website/src/repl/Footer.jsx @@ -436,7 +436,7 @@ function SettingsTab({ scheduler }) { settingsMap.setKey('keybindings', keybindings)} - items={{ codemirror: 'Codemirror', vim: 'Vim', emacs: 'Emacs', vscodeExtension: 'VSCode' }} + items={{ codemirror: 'Codemirror', vim: 'Vim', emacs: 'Emacs', vscode: 'VSCode' }} > From 326571b797687f9c70701731bff0e0b775aa376a Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 2 Nov 2023 09:01:53 +0100 Subject: [PATCH 18/79] remove obsolete config --- website/astro.config.mjs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/website/astro.config.mjs b/website/astro.config.mjs index c994364e..f8fceaf7 100644 --- a/website/astro.config.mjs +++ b/website/astro.config.mjs @@ -45,10 +45,6 @@ const options = { // https://astro.build/config export default defineConfig({ - trailingSlash: 'always', - build: { - format: 'directory', - }, integrations: [ react(), mdx(options), From 419cf6c12b622efea56727edf43366b77d4732b4 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 2 Nov 2023 09:13:29 +0100 Subject: [PATCH 19/79] update to astro 3 --- my-patterns/README.md | 2 +- pnpm-lock.yaml | 2955 ++++++++++------- src-tauri/tauri.conf.json | 2 +- website/README.md | 2 +- website/package.json | 8 +- website/src/pages/learn/mini-notation.mdx | 2 +- website/src/pages/learn/strudel-vs-tidal.mdx | 2 +- website/src/pages/technical-manual/docs.mdx | 2 +- .../src/pages/workshop/getting-started.mdx | 2 +- 9 files changed, 1685 insertions(+), 1292 deletions(-) diff --git a/my-patterns/README.md b/my-patterns/README.md index 1cec5e57..c8d694ea 100644 --- a/my-patterns/README.md +++ b/my-patterns/README.md @@ -47,7 +47,7 @@ If you want to automatically deploy your site on push, go to `deploy.yml` and ch ## running locally - install dependencies with `npm run setup` -- run dev server with `npm run repl` and open `http://localhost:3000/strudel/swatch/` +- run dev server with `npm run repl` and open `http://localhost:4321/strudel/swatch/` ## tests fail? diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 92a7dfec..98f6441f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -108,7 +108,7 @@ importers: version: 4.3.3 vitest: specifier: ^0.33.0 - version: 0.33.0 + version: 0.33.0(@vitest/ui@0.28.0) packages/core/examples/vite-vanilla-repl: dependencies: @@ -164,7 +164,7 @@ importers: dependencies: '@csound/browser': specifier: 6.18.7 - version: 6.18.7 + version: 6.18.7(eslint@8.39.0) '@strudel.cycles/core': specifier: workspace:* version: link:../core @@ -201,7 +201,7 @@ importers: version: 5.8.1 vite: specifier: ^4.3.3 - version: 4.4.5 + version: 4.4.5(@types/node@18.16.3) packages/midi: dependencies: @@ -233,7 +233,7 @@ importers: version: 4.3.3 vitest: specifier: ^0.33.0 - version: 0.33.0 + version: 0.33.0(@vitest/ui@0.28.0) packages/osc: dependencies: @@ -255,7 +255,7 @@ importers: dependencies: '@codemirror/autocomplete': specifier: ^6.6.0 - version: 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + version: 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2) '@codemirror/commands': specifier: ^6.0.0 version: 6.2.4 @@ -306,7 +306,7 @@ importers: version: 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) '@uiw/react-codemirror': specifier: ^4.19.16 - version: 4.19.16(@codemirror/autocomplete@6.6.0)(@codemirror/language@6.6.0)(@codemirror/lint@6.1.0)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(react-dom@18.2.0)(react@18.2.0) + version: 4.19.16(@babel/runtime@7.20.13)(@codemirror/autocomplete@6.6.0)(@codemirror/language@6.6.0)(@codemirror/lint@6.1.0)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/theme-one-dark@6.1.0)(@codemirror/view@6.10.0)(codemirror@6.0.1)(react-dom@18.2.0)(react@18.2.0) react-hook-inview: specifier: ^4.5.0 version: 4.5.0(react-dom@18.2.0)(react@18.2.0) @@ -444,7 +444,7 @@ importers: devDependencies: vite: specifier: ^4.4.5 - version: 4.4.5 + version: 4.4.5(@types/node@18.16.3) packages/tonal: dependencies: @@ -466,7 +466,7 @@ importers: version: 4.3.3 vitest: specifier: ^0.33.0 - version: 0.33.0 + version: 0.33.0(@vitest/ui@0.28.0) packages/transpiler: dependencies: @@ -491,7 +491,7 @@ importers: version: 4.3.3 vitest: specifier: ^0.33.0 - version: 0.33.0 + version: 0.33.0(@vitest/ui@0.28.0) packages/web: dependencies: @@ -549,7 +549,7 @@ importers: version: 4.3.3 vitest: specifier: ^0.33.0 - version: 0.33.0 + version: 0.33.0(@vitest/ui@0.28.0) website: dependencies: @@ -557,14 +557,14 @@ importers: specifier: ^4.17.0 version: 4.17.0 '@astrojs/mdx': - specifier: ^0.19.0 - version: 0.19.0(astro@2.3.2) + specifier: ^1.1.3 + version: 1.1.3(astro@3.4.2) '@astrojs/react': - specifier: ^2.1.1 - version: 2.1.1(@types/react-dom@18.2.1)(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) + specifier: ^3.0.4 + version: 3.0.4(@types/react-dom@18.2.1)(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0)(vite@4.5.0) '@astrojs/tailwind': - specifier: ^3.1.1 - version: 3.1.1(astro@2.3.2)(tailwindcss@3.3.2) + specifier: ^5.0.2 + version: 5.0.2(astro@3.4.2)(tailwindcss@3.3.2) '@docsearch/css': specifier: ^3.3.4 version: 3.3.4 @@ -651,10 +651,10 @@ importers: version: 18.2.1 '@uiw/codemirror-themes-all': specifier: ^4.19.16 - version: 4.19.16 + version: 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) astro: - specifier: ^2.3.2 - version: 2.3.2(@types/node@18.16.3) + specifier: ^3.4.2 + version: 3.4.2(@types/node@18.16.3)(typescript@4.9.4) canvas: specifier: ^2.11.2 version: 2.11.2 @@ -694,13 +694,13 @@ importers: devDependencies: '@vite-pwa/astro': specifier: ^0.1.4 - version: 0.1.4(astro@2.3.2)(vite-plugin-pwa@0.16.5) + version: 0.1.4(astro@3.4.2)(vite-plugin-pwa@0.16.5) html-escaper: specifier: ^3.0.3 version: 3.0.3 vite-plugin-pwa: specifier: ^0.16.5 - version: 0.16.5(workbox-window@7.0.0) + version: 0.16.5(vite@4.5.0)(workbox-build@7.0.0)(workbox-window@7.0.0) workbox-window: specifier: ^7.0.0 version: 7.0.0 @@ -876,177 +876,138 @@ packages: leven: 3.1.0 dev: true - /@astrojs/compiler@0.31.4: - resolution: {integrity: sha512-6bBFeDTtPOn4jZaiD3p0f05MEGQL9pw2Zbfj546oFETNmjJFWO3nzHz6/m+P53calknCvyVzZ5YhoBLIvzn5iw==} + /@astrojs/compiler@2.2.1: + resolution: {integrity: sha512-NJ1lWKzMkyEjE3W5NpPNAVot4/PLF5om/P6ekxNu3iLS05CaYFTcp7WpYMjdCC252b7wkNVAs45FNkVQ+RHW/g==} - /@astrojs/compiler@1.3.2: - resolution: {integrity: sha512-W/2Mdsq75ruK31dPVlXLdvAoknYDcm6+zXiFToSzQWI7wZqqR+51XTFgx90ojYbefk7z4VOJSVtZBz2pA82F5A==} + /@astrojs/internal-helpers@0.2.1: + resolution: {integrity: sha512-06DD2ZnItMwUnH81LBLco3tWjcZ1lGU9rLCCBaeUCGYe9cI0wKyY2W3kDyoW1I6GmcWgt1fu+D1CTvz+FIKf8A==} - /@astrojs/language-server@0.28.3: - resolution: {integrity: sha512-fPovAX/X46eE2w03jNRMpQ7W9m2mAvNt4Ay65lD9wl1Z5vIQYxlg7Enp9qP225muTr4jSVB5QiLumFJmZMAaVA==} - hasBin: true - dependencies: - '@vscode/emmet-helper': 2.8.6 - events: 3.3.0 - prettier: 2.8.8 - prettier-plugin-astro: 0.7.2 - source-map: 0.7.4 - vscode-css-languageservice: 6.2.3 - vscode-html-languageservice: 5.0.4 - vscode-languageserver: 8.0.2 - vscode-languageserver-protocol: 3.17.2 - vscode-languageserver-textdocument: 1.0.8 - vscode-languageserver-types: 3.17.2 - vscode-uri: 3.0.7 - - /@astrojs/markdown-remark@2.1.4(astro@2.3.2): - resolution: {integrity: sha512-z5diCcFo2xkBAJ11KySAIKpZZkULZmzUvWsZ2VWIOrR6QrEgEfVl5jTpgPSedx4m+xUPuemlUviOotGB7ItNsQ==} + /@astrojs/markdown-remark@3.3.0(astro@3.4.2): + resolution: {integrity: sha512-ezFzEiZygc/ASe2Eul9v1yrTbNGqSbR348UGNXQ4Dtkx8MYRwfiBfmPm6VnEdfIGkW+bi5qIUReKfc7mPVUkIg==} peerDependencies: - astro: ^2.3.0 + astro: ^3.3.0 dependencies: - '@astrojs/prism': 2.1.1 - astro: 2.3.2(@types/node@18.16.3) - github-slugger: 1.5.0 - import-meta-resolve: 2.2.1 + '@astrojs/prism': 3.0.0 + astro: 3.4.2(@types/node@18.16.3)(typescript@4.9.4) + github-slugger: 2.0.0 + import-meta-resolve: 3.0.0 + mdast-util-definitions: 6.0.0 rehype-raw: 6.1.1 - rehype-stringify: 9.0.3 + rehype-stringify: 9.0.4 remark-gfm: 3.0.1 - remark-parse: 10.0.1 + remark-parse: 10.0.2 remark-rehype: 10.1.0 remark-smartypants: 2.0.0 - shiki: 0.11.1 + shikiji: 0.6.10 unified: 10.1.2 unist-util-visit: 4.1.2 - vfile: 5.3.6 + vfile: 5.3.7 transitivePeerDependencies: - supports-color - /@astrojs/mdx@0.19.0(astro@2.3.2): - resolution: {integrity: sha512-McFpMV+npinIEKnY5t9hsdzLd76g78GgIRUPxem2OeXPNB8xr2pNS28GeU0+6Pn5STnB+sgcyyeqXLgzauOlMQ==} - engines: {node: '>=16.12.0'} + /@astrojs/mdx@1.1.3(astro@3.4.2): + resolution: {integrity: sha512-5U5l6bCmywF2IOO8T7oIeStrRB16cxlGCz02U2akpEkLw93dmn5QcHjr4Cwem0bSKROEjYqZ7DxN8t8YAAV2qA==} + engines: {node: '>=18.14.1'} + peerDependencies: + astro: ^3.3.4 dependencies: - '@astrojs/markdown-remark': 2.1.4(astro@2.3.2) - '@astrojs/prism': 2.1.1 + '@astrojs/markdown-remark': 3.3.0(astro@3.4.2) '@mdx-js/mdx': 2.3.0 - '@mdx-js/rollup': 2.3.0 - acorn: 8.8.2 - es-module-lexer: 1.2.1 + acorn: 8.10.0 + astro: 3.4.2(@types/node@18.16.3)(typescript@4.9.4) + es-module-lexer: 1.3.1 estree-util-visit: 1.2.1 - github-slugger: 1.5.0 + github-slugger: 2.0.0 gray-matter: 4.0.3 + hast-util-to-html: 8.0.4 kleur: 4.1.5 rehype-raw: 6.1.1 - remark-frontmatter: 4.0.1 remark-gfm: 3.0.1 remark-smartypants: 2.0.0 - shiki: 0.11.1 source-map: 0.7.4 unist-util-visit: 4.1.2 - vfile: 5.3.6 + vfile: 5.3.7 transitivePeerDependencies: - - astro - - rollup - supports-color dev: false - /@astrojs/prism@2.1.1: - resolution: {integrity: sha512-Gnwnlb1lGJzCQEg89r4/WqgfCGPNFC7Kuh2D/k289Cbdi/2PD7Lrdstz86y1itDvcb2ijiRqjqWnJ5rsfu/QOA==} - engines: {node: '>=16.12.0'} + /@astrojs/prism@3.0.0: + resolution: {integrity: sha512-g61lZupWq1bYbcBnYZqdjndShr/J3l/oFobBKPA3+qMat146zce3nz2kdO4giGbhYDt4gYdhmoBz0vZJ4sIurQ==} + engines: {node: '>=18.14.1'} dependencies: prismjs: 1.29.0 - /@astrojs/react@2.1.1(@types/react-dom@18.2.1)(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-nIcDFnn5H4FKGoSBYXZr95RIQvpcTNRcVV1hvUQifO0F5hQsgb0PVyk6TG4JWxiPGY4Jt4MVQb5JaaDQHlHu4w==} - engines: {node: '>=16.12.0'} + /@astrojs/react@3.0.4(@types/react-dom@18.2.1)(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0)(vite@4.5.0): + resolution: {integrity: sha512-v+qltrm5nfqqm8C5ymYDBxrGlvNouRr+iCLcUWvNX65abVz8GzUqquhPQjmCTDXphn1Qc558Uxzc4s79l02skw==} + engines: {node: '>=18.14.1'} peerDependencies: '@types/react': ^17.0.50 || ^18.0.21 '@types/react-dom': ^17.0.17 || ^18.0.6 react: ^17.0.2 || ^18.0.0 react-dom: ^17.0.2 || ^18.0.0 dependencies: - '@babel/core': 7.20.12 - '@babel/plugin-transform-react-jsx': 7.20.13(@babel/core@7.20.12) '@types/react': 18.2.0 '@types/react-dom': 18.2.1 + '@vitejs/plugin-react': 4.1.0(vite@4.5.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + ultrahtml: 1.5.2 transitivePeerDependencies: - supports-color + - vite dev: false - /@astrojs/tailwind@3.1.1(astro@2.3.2)(tailwindcss@3.3.2): - resolution: {integrity: sha512-Wx/ZtVnmtfqHWGVzvUEYZm8rufVKVgDIef0q6fzwUxoT1EpTTwBkTbpnzooogewMLOh2eTscasGe3Ih2HC1wVA==} + /@astrojs/tailwind@5.0.2(astro@3.4.2)(tailwindcss@3.3.2): + resolution: {integrity: sha512-oXqeqmBlkQmsltrsU9nEWeXOtrZIAHW8dcmX7BCdrjzPnU6dPwWzAwhddNQ9ihKiWwsLnlbwQZIo2CDigcZlIA==} peerDependencies: - astro: ^2.1.3 + astro: ^3.2.4 tailwindcss: ^3.0.24 dependencies: - '@proload/core': 0.3.3 - astro: 2.3.2(@types/node@18.16.3) - autoprefixer: 10.4.14(postcss@8.4.23) - postcss: 8.4.23 - postcss-load-config: 4.0.1(postcss@8.4.23) + astro: 3.4.2(@types/node@18.16.3)(typescript@4.9.4) + autoprefixer: 10.4.16(postcss@8.4.31) + postcss: 8.4.31 + postcss-load-config: 4.0.1(postcss@8.4.31) tailwindcss: 3.3.2 transitivePeerDependencies: - ts-node dev: false - /@astrojs/telemetry@2.1.0: - resolution: {integrity: sha512-P3gXNNOkRJM8zpnasNoi5kXp3LnFt0smlOSUXhkynfJpTJMIDrcMbKpNORN0OYbqpKt9JPdgRN7nsnGWpbH1ww==} - engines: {node: '>=16.12.0'} + /@astrojs/telemetry@3.0.4: + resolution: {integrity: sha512-A+0c7k/Xy293xx6odsYZuXiaHO0PL+bnDoXOc47sGDF5ffIKdKQGRPFl2NMlCF4L0NqN4Ynbgnaip+pPF0s7pQ==} + engines: {node: '>=18.14.1'} dependencies: - ci-info: 3.7.1 + ci-info: 3.9.0 debug: 4.3.4 dlv: 1.1.3 dset: 3.1.2 is-docker: 3.0.0 - is-wsl: 2.2.0 - undici: 5.22.0 + is-wsl: 3.1.0 which-pm-runs: 1.1.0 transitivePeerDependencies: - supports-color - /@astrojs/webapi@2.1.0: - resolution: {integrity: sha512-sbF44s/uU33jAdefzKzXZaENPeXR0sR3ptLs+1xp9xf5zIBhedH2AfaFB5qTEv9q5udUVoKxubZGT3G1nWs6rA==} - dependencies: - undici: 5.20.0 - - /@babel/code-frame@7.18.6: - resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.18.6 - /@babel/code-frame@7.21.4: resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.18.6 + dev: true + + /@babel/code-frame@7.22.13: + resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.22.20 + chalk: 2.4.2 /@babel/compat-data@7.21.5: resolution: {integrity: sha512-M+XAiQ7GzQ3FDPf0KOLkugzptnIypt0X0ma0wmlTKPR3IchgNFdx2JXxZdvd18JY5s7QkaFD/qyX0dsMpog/Ug==} engines: {node: '>=6.9.0'} + dev: true - /@babel/core@7.20.12: - resolution: {integrity: sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==} + /@babel/compat-data@7.23.2: + resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==} engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.2.0 - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.14 - '@babel/helper-compilation-targets': 7.20.7(@babel/core@7.20.12) - '@babel/helper-module-transforms': 7.20.11 - '@babel/helpers': 7.20.13 - '@babel/parser': 7.20.13 - '@babel/template': 7.20.7 - '@babel/traverse': 7.20.13 - '@babel/types': 7.20.7 - convert-source-map: 1.9.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color /@babel/core@7.21.5: resolution: {integrity: sha512-9M398B/QH5DlfCOTKDZT1ozXr0x8uBEeFd+dJraGUZGiaNpGCDVGCc14hZexsMblw3XxltJ+6kSvogp9J+5a9g==} @@ -1071,6 +1032,28 @@ packages: - supports-color dev: true + /@babel/core@7.23.2: + resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helpers': 7.23.2 + '@babel/parser': 7.23.0 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + /@babel/generator@7.18.2: resolution: {integrity: sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==} engines: {node: '>=6.9.0'} @@ -1080,14 +1063,6 @@ packages: jsesc: 2.5.2 dev: true - /@babel/generator@7.20.14: - resolution: {integrity: sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.7 - '@jridgewell/gen-mapping': 0.3.2 - jsesc: 2.5.2 - /@babel/generator@7.21.5: resolution: {integrity: sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==} engines: {node: '>=6.9.0'} @@ -1096,34 +1071,31 @@ packages: '@jridgewell/gen-mapping': 0.3.2 '@jridgewell/trace-mapping': 0.3.17 jsesc: 2.5.2 + dev: true - /@babel/helper-annotate-as-pure@7.18.6: - resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} + /@babel/generator@7.23.0: + resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.23.0 + '@jridgewell/gen-mapping': 0.3.2 + '@jridgewell/trace-mapping': 0.3.17 + jsesc: 2.5.2 + + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 /@babel/helper-builder-binary-assignment-operator-visitor@7.18.9: resolution: {integrity: sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-explode-assignable-expression': 7.18.6 - '@babel/types': 7.21.5 + '@babel/types': 7.23.0 dev: true - /@babel/helper-compilation-targets@7.20.7(@babel/core@7.20.12): - resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.21.5 - '@babel/core': 7.20.12 - '@babel/helper-validator-option': 7.21.0 - browserslist: 4.21.5 - lru-cache: 5.1.1 - semver: 6.3.0 - /@babel/helper-compilation-targets@7.21.5(@babel/core@7.21.5): resolution: {integrity: sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==} engines: {node: '>=6.9.0'} @@ -1138,120 +1110,125 @@ packages: semver: 6.3.0 dev: true - /@babel/helper-create-class-features-plugin@7.20.12(@babel/core@7.21.5): + /@babel/helper-compilation-targets@7.22.15: + resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.23.2 + '@babel/helper-validator-option': 7.22.15 + browserslist: 4.22.1 + lru-cache: 5.1.1 + semver: 6.3.1 + + /@babel/helper-create-class-features-plugin@7.20.12(@babel/core@7.23.2): resolution: {integrity: sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.21.5 - '@babel/helper-function-name': 7.21.0 + '@babel/core': 7.23.2 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.20.7 '@babel/helper-optimise-call-expression': 7.18.6 '@babel/helper-replace-supers': 7.20.7 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-split-export-declaration': 7.22.6 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-create-regexp-features-plugin@7.20.5(@babel/core@7.21.5): + /@babel/helper-create-regexp-features-plugin@7.20.5(@babel/core@7.23.2): resolution: {integrity: sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/core': 7.23.2 + '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.2.2 dev: true - /@babel/helper-define-polyfill-provider@0.3.3(@babel/core@7.21.5): + /@babel/helper-define-polyfill-provider@0.3.3(@babel/core@7.23.2): resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} peerDependencies: '@babel/core': ^7.4.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4 lodash.debounce: 4.0.8 - resolve: 1.22.2 - semver: 6.3.0 + resolve: 1.22.8 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-environment-visitor@7.18.9: - resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} - engines: {node: '>=6.9.0'} - /@babel/helper-environment-visitor@7.21.5: resolution: {integrity: sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==} engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} /@babel/helper-explode-assignable-expression@7.18.6: resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.23.0 dev: true - /@babel/helper-function-name@7.19.0: - resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.20.7 - '@babel/types': 7.21.5 - /@babel/helper-function-name@7.21.0: resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.20.7 '@babel/types': 7.21.5 + dev: true + + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.23.0 /@babel/helper-hoist-variables@7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.21.5 + dev: true + + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 /@babel/helper-member-expression-to-functions@7.20.7: resolution: {integrity: sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.23.0 dev: true - /@babel/helper-module-imports@7.18.6: - resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.21.5 - /@babel/helper-module-imports@7.21.4: resolution: {integrity: sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.21.5 + dev: true - /@babel/helper-module-transforms@7.20.11: - resolution: {integrity: sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==} + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-environment-visitor': 7.21.5 - '@babel/helper-module-imports': 7.21.4 - '@babel/helper-simple-access': 7.21.5 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/helper-validator-identifier': 7.19.1 - '@babel/template': 7.20.7 - '@babel/traverse': 7.21.5 - '@babel/types': 7.21.5 - transitivePeerDependencies: - - supports-color + '@babel/types': 7.23.0 /@babel/helper-module-transforms@7.21.5: resolution: {integrity: sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==} @@ -1269,28 +1246,46 @@ packages: - supports-color dev: true + /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2): + resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + /@babel/helper-optimise-call-expression@7.18.6: resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.23.0 dev: true /@babel/helper-plugin-utils@7.20.2: resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} engines: {node: '>=6.9.0'} + dev: true - /@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.21.5): + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} + + /@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.23.2): resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.21.5 + '@babel/core': 7.23.2 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.20.5 - '@babel/types': 7.21.5 + '@babel/types': 7.23.0 transitivePeerDependencies: - supports-color dev: true @@ -1299,12 +1294,12 @@ packages: resolution: {integrity: sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-environment-visitor': 7.21.5 + '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.20.7 '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/template': 7.20.7 - '@babel/traverse': 7.21.5 - '@babel/types': 7.21.5 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 transitivePeerDependencies: - supports-color dev: true @@ -1314,12 +1309,19 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.21.5 + dev: true + + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 /@babel/helper-skip-transparent-expression-wrappers@7.20.0: resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.23.0 dev: true /@babel/helper-split-export-declaration@7.18.6: @@ -1327,45 +1329,56 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.21.5 + dev: true + + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 /@babel/helper-string-parser@7.19.4: resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-string-parser@7.21.5: resolution: {integrity: sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==} engines: {node: '>=6.9.0'} + /@babel/helper-string-parser@7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier@7.19.1: resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + /@babel/helper-validator-option@7.21.0: resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-option@7.22.15: + resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} + engines: {node: '>=6.9.0'} /@babel/helper-wrap-function@7.20.5: resolution: {integrity: sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-function-name': 7.21.0 - '@babel/template': 7.20.7 - '@babel/traverse': 7.21.5 - '@babel/types': 7.21.5 + '@babel/helper-function-name': 7.23.0 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 transitivePeerDependencies: - supports-color dev: true - /@babel/helpers@7.20.13: - resolution: {integrity: sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.20.7 - '@babel/traverse': 7.21.5 - '@babel/types': 7.21.5 - transitivePeerDependencies: - - supports-color - /@babel/helpers@7.21.5: resolution: {integrity: sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==} engines: {node: '>=6.9.0'} @@ -1377,6 +1390,16 @@ packages: - supports-color dev: true + /@babel/helpers@7.23.2: + resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 + transitivePeerDependencies: + - supports-color + /@babel/highlight@7.18.6: resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} engines: {node: '>=6.9.0'} @@ -1384,6 +1407,15 @@ packages: '@babel/helper-validator-identifier': 7.19.1 chalk: 2.4.2 js-tokens: 4.0.0 + dev: true + + /@babel/highlight@7.22.20: + resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 /@babel/parser@7.18.4: resolution: {integrity: sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==} @@ -1393,19 +1425,13 @@ packages: '@babel/types': 7.21.5 dev: true - /@babel/parser@7.20.13: - resolution: {integrity: sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.21.5 - /@babel/parser@7.21.4: resolution: {integrity: sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==} engines: {node: '>=6.0.0'} hasBin: true dependencies: '@babel/types': 7.20.7 + dev: true /@babel/parser@7.21.5: resolution: {integrity: sha512-J+IxH2IsxV4HbnTrSWgMAQj0UEo61hDA4Ny8h8PCX0MLXiibqHbqIOVneqdocemSBc22VpBKxt4J6FQzy9HarQ==} @@ -1414,641 +1440,640 @@ packages: dependencies: '@babel/types': 7.21.5 - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6(@babel/core@7.21.5): + /@babel/parser@7.23.0: + resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.0 + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.20.7(@babel/core@7.21.5): + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.20.7(@babel/core@7.23.2): resolution: {integrity: sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/plugin-proposal-optional-chaining': 7.20.7(@babel/core@7.21.5) + '@babel/plugin-proposal-optional-chaining': 7.20.7(@babel/core@7.23.2) dev: true - /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.21.5): + /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.23.2): resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-environment-visitor': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.21.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.23.2) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.2) transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-create-class-features-plugin': 7.20.12(@babel/core@7.21.5) - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-create-class-features-plugin': 7.20.12(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-class-static-block@7.20.7(@babel/core@7.21.5): + /@babel/plugin-proposal-class-static-block@7.20.7(@babel/core@7.23.2): resolution: {integrity: sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-static-block instead. peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-create-class-features-plugin': 7.20.12(@babel/core@7.21.5) - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-create-class-features-plugin': 7.20.12(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.2) transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.2) dev: true - /@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.21.5): + /@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.23.2): resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.2) dev: true - /@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.2) dev: true - /@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.21.5): + /@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.23.2): resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.2) dev: true - /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.2) dev: true - /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.2) dev: true - /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.21.5): + /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.23.2): resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.21.5 - '@babel/core': 7.21.5 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-transform-parameters': 7.20.7(@babel/core@7.21.5) + '@babel/compat-data': 7.23.2 + '@babel/core': 7.23.2 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-transform-parameters': 7.20.7(@babel/core@7.23.2) dev: true - /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.2) dev: true - /@babel/plugin-proposal-optional-chaining@7.20.7(@babel/core@7.21.5): + /@babel/plugin-proposal-optional-chaining@7.20.7(@babel/core@7.23.2): resolution: {integrity: sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.2) dev: true - /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-create-class-features-plugin': 7.20.12(@babel/core@7.21.5) - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-create-class-features-plugin': 7.20.12(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-private-property-in-object@7.20.5(@babel/core@7.21.5): + /@babel/plugin-proposal-private-property-in-object@7.20.5(@babel/core@7.23.2): resolution: {integrity: sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-create-class-features-plugin': 7.20.12(@babel/core@7.21.5) - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.20.12(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.2) transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} engines: {node: '>=4'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-create-regexp-features-plugin': 7.20.5(@babel/core@7.21.5) - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-create-regexp-features-plugin': 7.20.5(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.21.5): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.2): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.21.5): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.2): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.21.5): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.2): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.21.5): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.21.5): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.20.0(@babel/core@7.21.5): + /@babel/plugin-syntax-import-assertions@7.20.0(@babel/core@7.23.2): resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.21.5): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx@7.18.6(@babel/core@7.20.12): - resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.21.5): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.2): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.21.5): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.21.5): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.2): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.21.5): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.21.5): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.21.5): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.21.5): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.2): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.21.5): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.2): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions@7.20.7(@babel/core@7.21.5): + /@babel/plugin-transform-arrow-functions@7.20.7(@babel/core@7.23.2): resolution: {integrity: sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-async-to-generator@7.20.7(@babel/core@7.21.5): + /@babel/plugin-transform-async-to-generator@7.20.7(@babel/core@7.23.2): resolution: {integrity: sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-module-imports': 7.21.4 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.23.2) transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoping@7.20.15(@babel/core@7.21.5): + /@babel/plugin-transform-block-scoping@7.20.15(@babel/core@7.23.2): resolution: {integrity: sha512-Vv4DMZ6MiNOhu/LdaZsT/bsLRxgL94d269Mv4R/9sp6+Mp++X/JqypZYypJXLlM4mlL352/Egzbzr98iABH1CA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-classes@7.20.7(@babel/core@7.21.5): + /@babel/plugin-transform-classes@7.20.7(@babel/core@7.23.2): resolution: {integrity: sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) - '@babel/helper-environment-visitor': 7.21.5 - '@babel/helper-function-name': 7.21.0 + '@babel/core': 7.23.2 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-replace-supers': 7.20.7 - '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-computed-properties@7.20.7(@babel/core@7.21.5): + /@babel/plugin-transform-computed-properties@7.20.7(@babel/core@7.23.2): resolution: {integrity: sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/template': 7.20.7 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/template': 7.22.15 dev: true - /@babel/plugin-transform-destructuring@7.20.7(@babel/core@7.21.5): + /@babel/plugin-transform-destructuring@7.20.7(@babel/core@7.23.2): resolution: {integrity: sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-create-regexp-features-plugin': 7.20.5(@babel/core@7.21.5) - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-create-regexp-features-plugin': 7.20.5(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-duplicate-keys@7.18.9(@babel/core@7.21.5): + /@babel/plugin-transform-duplicate-keys@7.18.9(@babel/core@7.23.2): resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-exponentiation-operator@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-exponentiation-operator@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.23.2 '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-for-of@7.18.8(@babel/core@7.21.5): + /@babel/plugin-transform-for-of@7.18.8(@babel/core@7.23.2): resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.18.9(@babel/core@7.21.5): + /@babel/plugin-transform-function-name@7.18.9(@babel/core@7.23.2): resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) - '@babel/helper-function-name': 7.21.0 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-literals@7.18.9(@babel/core@7.21.5): + /@babel/plugin-transform-literals@7.18.9(@babel/core@7.23.2): resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-member-expression-literals@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-member-expression-literals@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-amd@7.20.11(@babel/core@7.21.5): + /@babel/plugin-transform-modules-amd@7.20.11(@babel/core@7.23.2): resolution: {integrity: sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-module-transforms': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.23.2 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.20.11(@babel/core@7.21.5): + /@babel/plugin-transform-modules-commonjs@7.20.11(@babel/core@7.23.2): resolution: {integrity: sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-module-transforms': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-simple-access': 7.21.5 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.23.2 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-systemjs@7.20.11(@babel/core@7.21.5): + /@babel/plugin-transform-modules-systemjs@7.20.11(@babel/core@7.23.2): resolution: {integrity: sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-module-transforms': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-validator-identifier': 7.19.1 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.23.2 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/plugin-transform-modules-umd@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-modules-umd@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-module-transforms': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.23.2 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.20.5(@babel/core@7.21.5): + /@babel/plugin-transform-named-capturing-groups-regex@7.20.5(@babel/core@7.23.2): resolution: {integrity: sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-create-regexp-features-plugin': 7.20.5(@babel/core@7.21.5) - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-create-regexp-features-plugin': 7.20.5(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-new-target@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-new-target@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-object-super@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-object-super@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-replace-supers': 7.20.7 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-parameters@7.20.7(@babel/core@7.21.5): + /@babel/plugin-transform-parameters@7.20.7(@babel/core@7.23.2): resolution: {integrity: sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true /@babel/plugin-transform-react-jsx-self@7.21.0(@babel/core@7.21.5): @@ -2061,6 +2086,16 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true + /@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + /@babel/plugin-transform-react-jsx-source@7.19.6(@babel/core@7.21.5): resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==} engines: {node: '>=6.9.0'} @@ -2071,208 +2106,218 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-react-jsx@7.20.13(@babel/core@7.20.12): - resolution: {integrity: sha512-MmTZx/bkUrfJhhYAYt3Urjm+h8DQGrPrnKQ94jLo7NLuOU+T89a7IByhKmrb8SKhrIYIQ0FN0CHMbnFRen4qNw==} + /@babel/plugin-transform-react-jsx-source@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-module-imports': 7.18.6 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.20.12) - '@babel/types': 7.20.7 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: false - /@babel/plugin-transform-regenerator@7.20.5(@babel/core@7.21.5): + /@babel/plugin-transform-react-jsx@7.22.15(@babel/core@7.23.2): + resolution: {integrity: sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2) + '@babel/types': 7.23.0 + + /@babel/plugin-transform-regenerator@7.20.5(@babel/core@7.23.2): resolution: {integrity: sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.1 dev: true - /@babel/plugin-transform-reserved-words@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-reserved-words@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-spread@7.20.7(@babel/core@7.21.5): + /@babel/plugin-transform-spread@7.20.7(@babel/core@7.23.2): resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 dev: true - /@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals@7.18.9(@babel/core@7.21.5): + /@babel/plugin-transform-template-literals@7.18.9(@babel/core@7.23.2): resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.18.9(@babel/core@7.21.5): + /@babel/plugin-transform-typeof-symbol@7.18.9(@babel/core@7.23.2): resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-escapes@7.18.10(@babel/core@7.21.5): + /@babel/plugin-transform-unicode-escapes@7.18.10(@babel/core@7.23.2): resolution: {integrity: sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-create-regexp-features-plugin': 7.20.5(@babel/core@7.21.5) - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-create-regexp-features-plugin': 7.20.5(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env@7.20.2(@babel/core@7.21.5): + /@babel/preset-env@7.20.2(@babel/core@7.23.2): resolution: {integrity: sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.21.5 - '@babel/core': 7.21.5 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-validator-option': 7.21.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-proposal-class-static-block': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-proposal-dynamic-import': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-proposal-export-namespace-from': 7.18.9(@babel/core@7.21.5) - '@babel/plugin-proposal-json-strings': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-proposal-optional-chaining': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-proposal-private-property-in-object': 7.20.5(@babel/core@7.21.5) - '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.21.5) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.21.5) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.21.5) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-syntax-import-assertions': 7.20.0(@babel/core@7.21.5) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.21.5) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.21.5) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.21.5) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.21.5) - '@babel/plugin-transform-arrow-functions': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-transform-async-to-generator': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-transform-block-scoped-functions': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-block-scoping': 7.20.15(@babel/core@7.21.5) - '@babel/plugin-transform-classes': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-transform-computed-properties': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-transform-destructuring': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-duplicate-keys': 7.18.9(@babel/core@7.21.5) - '@babel/plugin-transform-exponentiation-operator': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-for-of': 7.18.8(@babel/core@7.21.5) - '@babel/plugin-transform-function-name': 7.18.9(@babel/core@7.21.5) - '@babel/plugin-transform-literals': 7.18.9(@babel/core@7.21.5) - '@babel/plugin-transform-member-expression-literals': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-modules-amd': 7.20.11(@babel/core@7.21.5) - '@babel/plugin-transform-modules-commonjs': 7.20.11(@babel/core@7.21.5) - '@babel/plugin-transform-modules-systemjs': 7.20.11(@babel/core@7.21.5) - '@babel/plugin-transform-modules-umd': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5(@babel/core@7.21.5) - '@babel/plugin-transform-new-target': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-object-super': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-parameters': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-transform-property-literals': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-regenerator': 7.20.5(@babel/core@7.21.5) - '@babel/plugin-transform-reserved-words': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-shorthand-properties': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-spread': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-transform-sticky-regex': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-template-literals': 7.18.9(@babel/core@7.21.5) - '@babel/plugin-transform-typeof-symbol': 7.18.9(@babel/core@7.21.5) - '@babel/plugin-transform-unicode-escapes': 7.18.10(@babel/core@7.21.5) - '@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.21.5) - '@babel/preset-modules': 0.1.5(@babel/core@7.21.5) - '@babel/types': 7.21.5 - babel-plugin-polyfill-corejs2: 0.3.3(@babel/core@7.21.5) - babel-plugin-polyfill-corejs3: 0.6.0(@babel/core@7.21.5) - babel-plugin-polyfill-regenerator: 0.4.1(@babel/core@7.21.5) + '@babel/compat-data': 7.23.2 + '@babel/core': 7.23.2 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.22.15 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-proposal-class-static-block': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-proposal-dynamic-import': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-proposal-export-namespace-from': 7.18.9(@babel/core@7.23.2) + '@babel/plugin-proposal-json-strings': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-proposal-optional-chaining': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-proposal-private-property-in-object': 7.20.5(@babel/core@7.23.2) + '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.2) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.2) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.2) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-import-assertions': 7.20.0(@babel/core@7.23.2) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.2) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.2) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.2) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.2) + '@babel/plugin-transform-arrow-functions': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-transform-async-to-generator': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-transform-block-scoped-functions': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-block-scoping': 7.20.15(@babel/core@7.23.2) + '@babel/plugin-transform-classes': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-transform-computed-properties': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-transform-destructuring': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-duplicate-keys': 7.18.9(@babel/core@7.23.2) + '@babel/plugin-transform-exponentiation-operator': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-for-of': 7.18.8(@babel/core@7.23.2) + '@babel/plugin-transform-function-name': 7.18.9(@babel/core@7.23.2) + '@babel/plugin-transform-literals': 7.18.9(@babel/core@7.23.2) + '@babel/plugin-transform-member-expression-literals': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-modules-amd': 7.20.11(@babel/core@7.23.2) + '@babel/plugin-transform-modules-commonjs': 7.20.11(@babel/core@7.23.2) + '@babel/plugin-transform-modules-systemjs': 7.20.11(@babel/core@7.23.2) + '@babel/plugin-transform-modules-umd': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5(@babel/core@7.23.2) + '@babel/plugin-transform-new-target': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-object-super': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-parameters': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-transform-property-literals': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-regenerator': 7.20.5(@babel/core@7.23.2) + '@babel/plugin-transform-reserved-words': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-shorthand-properties': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-spread': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-transform-sticky-regex': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-template-literals': 7.18.9(@babel/core@7.23.2) + '@babel/plugin-transform-typeof-symbol': 7.18.9(@babel/core@7.23.2) + '@babel/plugin-transform-unicode-escapes': 7.18.10(@babel/core@7.23.2) + '@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.23.2) + '@babel/preset-modules': 0.1.5(@babel/core@7.23.2) + '@babel/types': 7.23.0 + babel-plugin-polyfill-corejs2: 0.3.3(@babel/core@7.23.2) + babel-plugin-polyfill-corejs3: 0.6.0(@babel/core@7.23.2) + babel-plugin-polyfill-regenerator: 0.4.1(@babel/core@7.23.2) core-js-compat: 3.27.2 - semver: 6.3.0 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules@0.1.5(@babel/core@7.21.5): + /@babel/preset-modules@0.1.5(@babel/core@7.23.2): resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.21.5) - '@babel/types': 7.21.5 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.23.2) + '@babel/types': 7.23.0 esutils: 2.0.3 dev: true @@ -2289,23 +2334,15 @@ packages: '@babel/code-frame': 7.21.4 '@babel/parser': 7.21.5 '@babel/types': 7.21.5 + dev: true - /@babel/traverse@7.20.13: - resolution: {integrity: sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==} + /@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.14 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.19.0 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.21.4 - '@babel/types': 7.20.7 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + '@babel/code-frame': 7.22.13 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 /@babel/traverse@7.21.5: resolution: {integrity: sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==} @@ -2323,6 +2360,24 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color + dev: true + + /@babel/traverse@7.23.2: + resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color /@babel/types@7.19.0: resolution: {integrity: sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==} @@ -2340,6 +2395,7 @@ packages: '@babel/helper-string-parser': 7.19.4 '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 + dev: true /@babel/types@7.21.5: resolution: {integrity: sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==} @@ -2349,12 +2405,21 @@ packages: '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 - /@codemirror/autocomplete@6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + /@babel/types@7.23.0: + resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + + /@codemirror/autocomplete@6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2): resolution: {integrity: sha512-SjbgWSwNKbyQOiVXtG8DXG2z29zTbmzpGccxMqakVo+vqK8fx3Ai0Ee7is3JqX6dxJOoK0GfP3LfeUK53Ltv7w==} peerDependencies: '@codemirror/language': ^6.0.0 '@codemirror/state': ^6.0.0 '@codemirror/view': ^6.0.0 + '@lezer/common': ^1.0.0 dependencies: '@codemirror/language': 6.6.0 '@codemirror/state': 6.2.0 @@ -2374,7 +2439,7 @@ packages: /@codemirror/lang-javascript@6.1.7: resolution: {integrity: sha512-KXKqxlZ4W6t5I7i2ScmITUD3f/F5Cllk3kj0De9P9mFeYVfhOVOWuDLgYiLpk357u7Xh4dhqjJAnsNPPoTLghQ==} dependencies: - '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2) '@codemirror/language': 6.6.0 '@codemirror/lint': 6.1.0 '@codemirror/state': 6.2.0 @@ -2431,11 +2496,11 @@ packages: w3c-keyname: 2.2.6 dev: false - /@csound/browser@6.18.7: + /@csound/browser@6.18.7(eslint@8.39.0): resolution: {integrity: sha512-pHC83n1fzV9xp7hkFNBTWYsqkBnOS3qNAA9AJNnu3ZCG35a4rMZ5ydOuFi3qqfkLwRTd+frazabxM/lu0+u0qw==} dependencies: comlink: 4.3.1 - eslint-plugin-n: 15.6.1 + eslint-plugin-n: 15.6.1(eslint@8.39.0) eventemitter3: 4.0.7 google-closure-compiler: 20221102.0.1 google-closure-library: 20221102.0.0 @@ -2479,19 +2544,6 @@ packages: - '@algolia/client-search' dev: false - /@emmetio/abbreviation@2.2.3: - resolution: {integrity: sha512-87pltuCPt99aL+y9xS6GPZ+Wmmyhll2WXH73gG/xpGcQ84DRnptBsI2r0BeIQ0EB/SQTOe2ANPqFqj3Rj5FOGA==} - dependencies: - '@emmetio/scanner': 1.0.0 - - /@emmetio/css-abbreviation@2.1.4: - resolution: {integrity: sha512-qk9L60Y+uRtM5CPbB0y+QNl/1XKE09mSO+AhhSauIfr2YOx/ta3NJw2d8RtCFxgzHeRqFRr8jgyzThbu+MZ4Uw==} - dependencies: - '@emmetio/scanner': 1.0.0 - - /@emmetio/scanner@1.0.0: - resolution: {integrity: sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA==} - /@esbuild/android-arm64@0.17.18: resolution: {integrity: sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==} engines: {node: '>=12'} @@ -2509,6 +2561,14 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm64@0.19.5: + resolution: {integrity: sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + /@esbuild/android-arm@0.17.18: resolution: {integrity: sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==} engines: {node: '>=12'} @@ -2526,6 +2586,14 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm@0.19.5: + resolution: {integrity: sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + /@esbuild/android-x64@0.17.18: resolution: {integrity: sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==} engines: {node: '>=12'} @@ -2543,6 +2611,14 @@ packages: requiresBuild: true optional: true + /@esbuild/android-x64@0.19.5: + resolution: {integrity: sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + optional: true + /@esbuild/darwin-arm64@0.17.18: resolution: {integrity: sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==} engines: {node: '>=12'} @@ -2560,6 +2636,14 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-arm64@0.19.5: + resolution: {integrity: sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + /@esbuild/darwin-x64@0.17.18: resolution: {integrity: sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==} engines: {node: '>=12'} @@ -2577,6 +2661,14 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-x64@0.19.5: + resolution: {integrity: sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + /@esbuild/freebsd-arm64@0.17.18: resolution: {integrity: sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==} engines: {node: '>=12'} @@ -2594,6 +2686,14 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-arm64@0.19.5: + resolution: {integrity: sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + optional: true + /@esbuild/freebsd-x64@0.17.18: resolution: {integrity: sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==} engines: {node: '>=12'} @@ -2611,6 +2711,14 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-x64@0.19.5: + resolution: {integrity: sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + optional: true + /@esbuild/linux-arm64@0.17.18: resolution: {integrity: sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==} engines: {node: '>=12'} @@ -2628,6 +2736,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm64@0.19.5: + resolution: {integrity: sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-arm@0.17.18: resolution: {integrity: sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==} engines: {node: '>=12'} @@ -2645,6 +2761,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm@0.19.5: + resolution: {integrity: sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-ia32@0.17.18: resolution: {integrity: sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==} engines: {node: '>=12'} @@ -2662,6 +2786,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ia32@0.19.5: + resolution: {integrity: sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-loong64@0.17.18: resolution: {integrity: sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==} engines: {node: '>=12'} @@ -2679,6 +2811,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-loong64@0.19.5: + resolution: {integrity: sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-mips64el@0.17.18: resolution: {integrity: sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==} engines: {node: '>=12'} @@ -2696,6 +2836,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-mips64el@0.19.5: + resolution: {integrity: sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-ppc64@0.17.18: resolution: {integrity: sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==} engines: {node: '>=12'} @@ -2713,6 +2861,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ppc64@0.19.5: + resolution: {integrity: sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-riscv64@0.17.18: resolution: {integrity: sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==} engines: {node: '>=12'} @@ -2730,6 +2886,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-riscv64@0.19.5: + resolution: {integrity: sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-s390x@0.17.18: resolution: {integrity: sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==} engines: {node: '>=12'} @@ -2747,6 +2911,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-s390x@0.19.5: + resolution: {integrity: sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-x64@0.17.18: resolution: {integrity: sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==} engines: {node: '>=12'} @@ -2764,6 +2936,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-x64@0.19.5: + resolution: {integrity: sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/netbsd-x64@0.17.18: resolution: {integrity: sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==} engines: {node: '>=12'} @@ -2781,6 +2961,14 @@ packages: requiresBuild: true optional: true + /@esbuild/netbsd-x64@0.19.5: + resolution: {integrity: sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + optional: true + /@esbuild/openbsd-x64@0.17.18: resolution: {integrity: sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==} engines: {node: '>=12'} @@ -2798,6 +2986,14 @@ packages: requiresBuild: true optional: true + /@esbuild/openbsd-x64@0.19.5: + resolution: {integrity: sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + optional: true + /@esbuild/sunos-x64@0.17.18: resolution: {integrity: sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==} engines: {node: '>=12'} @@ -2815,6 +3011,14 @@ packages: requiresBuild: true optional: true + /@esbuild/sunos-x64@0.19.5: + resolution: {integrity: sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + optional: true + /@esbuild/win32-arm64@0.17.18: resolution: {integrity: sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==} engines: {node: '>=12'} @@ -2832,6 +3036,14 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-arm64@0.19.5: + resolution: {integrity: sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + /@esbuild/win32-ia32@0.17.18: resolution: {integrity: sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==} engines: {node: '>=12'} @@ -2849,6 +3061,14 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-ia32@0.19.5: + resolution: {integrity: sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + /@esbuild/win32-x64@0.17.18: resolution: {integrity: sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==} engines: {node: '>=12'} @@ -2866,6 +3086,14 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-x64@0.19.5: + resolution: {integrity: sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + /@eslint-community/eslint-utils@4.4.0(eslint@8.39.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2874,12 +3102,10 @@ packages: dependencies: eslint: 8.39.0 eslint-visitor-keys: 3.4.0 - dev: true /@eslint-community/regexpp@4.5.1: resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: true /@eslint/eslintrc@2.0.2: resolution: {integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==} @@ -2896,12 +3122,10 @@ packages: strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - dev: true /@eslint/js@8.39.0: resolution: {integrity: sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true /@gar/promisify@1.1.3: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} @@ -2936,16 +3160,13 @@ packages: minimatch: 3.1.2 transitivePeerDependencies: - supports-color - dev: true /@humanwhocodes/module-importer@1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - dev: true /@humanwhocodes/object-schema@1.2.1: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} - dev: true /@hutson/parse-repository-url@3.0.2: resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} @@ -3147,9 +3368,6 @@ packages: '@lezer/common': 1.0.2 dev: false - /@ljharb/has-package-exports-patterns@0.0.2: - resolution: {integrity: sha512-4/RWEeXDO6bocPONheFe6gX/oQdP/bEpv0oL4HqjPP5DCenBSt0mHgahppY49N0CpsaqffdwPq+TlX9CYOq2Dw==} - /@mapbox/node-pre-gyp@1.0.10: resolution: {integrity: sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==} hasBin: true @@ -3186,20 +3404,7 @@ packages: unist-util-position-from-estree: 1.1.2 unist-util-stringify-position: 3.0.3 unist-util-visit: 4.1.2 - vfile: 5.3.6 - transitivePeerDependencies: - - supports-color - dev: false - - /@mdx-js/rollup@2.3.0: - resolution: {integrity: sha512-wLvRfJS/M4UmdqTd+WoaySEE7q4BIejYf1xAHXYvtT1du/1Tl/z2450Gg2+Hu7fh05KwRRiehiTP9Yc/Dtn0fA==} - peerDependencies: - rollup: '>=2' - dependencies: - '@mdx-js/mdx': 2.3.0 - '@rollup/pluginutils': 5.0.2 - source-map: 0.7.4 - vfile: 5.3.6 + vfile: 5.3.7 transitivePeerDependencies: - supports-color dev: false @@ -3738,28 +3943,10 @@ packages: dev: true optional: true - /@pkgr/utils@2.3.1: - resolution: {integrity: sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - dependencies: - cross-spawn: 7.0.3 - is-glob: 4.0.3 - open: 8.4.0 - picocolors: 1.0.0 - tiny-glob: 0.2.9 - tslib: 2.5.0 - /@polka/url@1.0.0-next.21: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true - /@proload/core@0.3.3: - resolution: {integrity: sha512-7dAFWsIK84C90AMl24+N/ProHKm4iw0akcnoKjRvbfHifJZBLhaDsDus1QJmhG12lXj4e/uB/8mB/0aduCW+NQ==} - dependencies: - deepmerge: 4.2.2 - escalade: 3.1.1 - dev: false - /@replit/codemirror-emacs@6.0.1(@codemirror/autocomplete@6.6.0)(@codemirror/commands@6.2.4)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-2WYkODZGH1QVAXWuOxTMCwktkoZyv/BjYdJi2A5w4fRrmOQFuIACzb6pO9dgU3J+Pm2naeiX2C8veZr/3/r6AA==} peerDependencies: @@ -3769,7 +3956,7 @@ packages: '@codemirror/state': ^6.0.1 '@codemirror/view': ^6.3.0 dependencies: - '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2) '@codemirror/commands': 6.2.4 '@codemirror/search': 6.2.3 '@codemirror/state': 6.2.0 @@ -3803,7 +3990,7 @@ packages: '@codemirror/state': ^6.0.0 '@codemirror/view': ^6.0.0 dependencies: - '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2) '@codemirror/commands': 6.2.4 '@codemirror/language': 6.6.0 '@codemirror/lint': 6.1.0 @@ -3812,7 +3999,7 @@ packages: '@codemirror/view': 6.10.0 dev: false - /@rollup/plugin-babel@5.3.1(@babel/core@7.21.5)(rollup@2.79.1): + /@rollup/plugin-babel@5.3.1(@babel/core@7.23.2)(rollup@2.79.1): resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -3823,8 +4010,8 @@ packages: '@types/babel__core': optional: true dependencies: - '@babel/core': 7.21.5 - '@babel/helper-module-imports': 7.21.4 + '@babel/core': 7.23.2 + '@babel/helper-module-imports': 7.22.15 '@rollup/pluginutils': 3.1.0(rollup@2.79.1) rollup: 2.79.1 dev: true @@ -3840,7 +4027,7 @@ packages: builtin-modules: 3.3.0 deepmerge: 4.2.2 is-module: 1.0.0 - resolve: 1.22.2 + resolve: 1.22.8 rollup: 2.79.1 dev: true @@ -3866,20 +4053,6 @@ packages: rollup: 2.79.1 dev: true - /@rollup/pluginutils@5.0.2: - resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@types/estree': 1.0.0 - estree-walker: 2.0.2 - picomatch: 2.3.1 - dev: false - /@sigstore/protobuf-specs@0.1.0: resolution: {integrity: sha512-a31EnjuIDSX8IXBUib3cYLDRlPMU36AWX4xS8ysLaNu4ZzUesDiPt83pgrW2X1YLMe5L2HbDyaKK5BrL4cNKaQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -4276,11 +4449,11 @@ packages: '@types/estree': 1.0.0 dev: false - /@types/babel__core@7.20.0: - resolution: {integrity: sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==} + /@types/babel__core@7.20.3: + resolution: {integrity: sha512-54fjTSeSHwfan8AyHWrKbfBWiEUrNTZsUwPTDSNaaP1QDQIZbeNUg3a59E9D+375MzUw/x1vx2/0F5LBz+AeYA==} dependencies: - '@babel/parser': 7.21.4 - '@babel/types': 7.20.7 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 '@types/babel__traverse': 7.18.3 @@ -4288,18 +4461,18 @@ packages: /@types/babel__generator@7.6.4: resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.23.0 /@types/babel__template@7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: - '@babel/parser': 7.21.5 - '@babel/types': 7.21.5 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 /@types/babel__traverse@7.18.3: resolution: {integrity: sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.23.0 /@types/chai-subset@1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} @@ -4338,12 +4511,14 @@ packages: dependencies: '@types/unist': 2.0.6 + /@types/hast@3.0.2: + resolution: {integrity: sha512-B5hZHgHsXvfCoO3xgNJvBnX7N8p86TqQeGKXcokW4XXi+qY4vxxPSFYofytvVmpFxzPv7oxDQzjg5Un5m2/xiw==} + dependencies: + '@types/unist': 3.0.1 + /@types/json5@0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - /@types/json5@0.0.30: - resolution: {integrity: sha512-sqm9g7mHlPY/43fcSNrCYfOeX9zkTTK+euO5E6+CVijSMm5tTjkVdwdqRkY3ljjIAf8679vps5jKUoJBCLsMDA==} - /@types/linkify-it@3.0.2: resolution: {integrity: sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==} dev: true @@ -4360,6 +4535,11 @@ packages: dependencies: '@types/unist': 2.0.6 + /@types/mdast@4.0.2: + resolution: {integrity: sha512-tYR83EignvhYO9iU3kDg8V28M0jqyh9zzp5GV+EO+AYnyUl3P5ltkTeJuTiFZQFz670FSb3EwT/6LQdX+UdKfw==} + dependencies: + '@types/unist': 3.0.1 + /@types/mdurl@1.0.2: resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==} dev: true @@ -4382,7 +4562,7 @@ packages: /@types/nlcst@1.0.0: resolution: {integrity: sha512-3TGCfOcy8R8mMQ4CNSNOe3PG66HttvjcLzCoOpvXvDtfWOTi+uT/rxeOKm/qEwbM4SNe1O/PjdiBK2YcTjU4OQ==} dependencies: - '@types/unist': 2.0.6 + '@types/unist': 3.0.1 /@types/node@18.16.3: resolution: {integrity: sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==} @@ -4423,9 +4603,6 @@ packages: '@types/node': 18.16.3 dev: true - /@types/resolve@1.20.2: - resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - /@types/scheduler@0.16.2: resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} @@ -4436,6 +4613,9 @@ packages: /@types/unist@2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} + /@types/unist@3.0.1: + resolution: {integrity: sha512-ue/hDUpPjC85m+PM9OQDMZr3LywT+CT6mPsQq8OJtCLiERkGRcQUFvu9XASF5XWqyZFXbf15lvb3JFJ4dRLWPg==} + /@types/webmidi@2.0.6: resolution: {integrity: sha512-sfS0A5IryqmBrUpcGPipEPeFdpqmZzP6b6lZFxHKgz5n2Vhzh4yJ5P2TvoDUhDjqJyv0Y25ng0Qodgo2Vu08ug==} dev: false @@ -4446,9 +4626,6 @@ packages: '@types/node': 18.16.3 dev: false - /@types/yargs-parser@21.0.0: - resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} - /@typescript-eslint/types@5.49.0: resolution: {integrity: sha512-7If46kusG+sSnEpu0yOz2xFv5nRz158nzEXnJFCGVEHWnuzolXKwrH5Bsf9zsNlOQkyZuk0BZKKoJQI+1JPBBg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4494,7 +4671,7 @@ packages: '@codemirror/state': '>=6.0.0' '@codemirror/view': '>=6.0.0' dependencies: - '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2) '@codemirror/commands': 6.2.4 '@codemirror/language': 6.6.0 '@codemirror/lint': 6.1.0 @@ -4503,279 +4680,269 @@ packages: '@codemirror/view': 6.10.0 dev: false - /@uiw/codemirror-theme-abcdef@4.19.16: + /@uiw/codemirror-theme-abcdef@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-vZHLg35Rhz39FF3HgAeHSZxIOV3/PG8q8v/0dcywCvt1FG9J6OuAifXzePo2nrT/P/qkienbehxzF+DyHHzV5g==} dependencies: - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-androidstudio@4.19.16: + /@uiw/codemirror-theme-androidstudio@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-jQcMc+F3KmpA9abBuC4IvvCGbX8vOxelX/kgt8kQjrB1WIxBCH3PClJ/puZ1iBHpk9sqHKcPHBNYmpnuWVrFOg==} dependencies: - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-atomone@4.19.16: + /@uiw/codemirror-theme-atomone@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-do5OwgJ+NZgX06Kjrvw+SdYgs7LYIdpLoNGIdvY99xpZZXWE7grfOjMfxRhEk7dHZ9omK6y/YY47BvgFjRnE4A==} dependencies: - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-aura@4.19.16: + /@uiw/codemirror-theme-aura@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-bGDEhkKLCYHPkXkH/2s5KOBY+mb/Ss0KR65Bzci05gbvAVkfqN4K0eQ9nchCbJxxobuy99dKVxYlcMHB/Mfzkg==} dependencies: - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-bbedit@4.19.16: + /@uiw/codemirror-theme-bbedit@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-0tpqBqoesvCqo/yE9nuP+g5vVh3A9CRb8PGJFzhVOrzSfWaYBcilRAi65e7T63qtli0VTNMZnc3si8ygOe11nA==} dependencies: - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-bespin@4.19.16: + /@uiw/codemirror-theme-bespin@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-WGZeFOzoEArkUG/VAojin26gzNeB6ji2qJGkZM94SL243kLCo1xaoeX2cYQjzYYJn+0ghphVS+jX2vF3MQHH6w==} dependencies: - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-darcula@4.19.16: + /@uiw/codemirror-theme-darcula@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-Nga4nn+KtbD5DKOlCFJBA/OXcMkbJ98jq6XqMntsHRUbKt3COAg5/g0SbsUsBKGHWdn8jNDzGeAnbLv9ydcFQQ==} dependencies: - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-dracula@4.19.16: + /@uiw/codemirror-theme-dracula@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-nl0tFT8/kaebqOmTTpOUpGlBK+BdAMTqF42U77pqlmYgUuRtrS3JE8uprc1JAzWGTWMcfXNMfXtwSSbzYZQfcw==} dependencies: - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-duotone@4.19.16: + /@uiw/codemirror-theme-duotone@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-FDGVN0rM2+VRmV+O9Rd1Q0p3c/ongLkSqgblQxkcr3lUY5M/Tj/mIxuxJGrkDIlxauJAz5p7ia7HSlicX0TPTw==} dependencies: - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-eclipse@4.19.16: + /@uiw/codemirror-theme-eclipse@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-GGb9ZgLXw0F7SrXRooqSgebo3knPQLQRK0/AKjsjZLUMAw2h8XRc8Y5IQaHUYADuoelxIb6m9cgWruWI0d5g4g==} dependencies: - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-github@4.19.16: + /@uiw/codemirror-theme-github@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-B3XmfphgnHiRedrP2adHjJsTc12Rw+tXrPmFUTurQrPyIITpCDLl9PJSsaJl9w5AuYhGcBxAeod7CEzMfdL1OA==} dependencies: - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-gruvbox-dark@4.19.16: + /@uiw/codemirror-theme-gruvbox-dark@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-ymqH4GwGmxixU+hxshJ2vcp4dWW66WMKvox2ifVqIUG24p0yjmFuxINmBX8asj/6LandhSYsGs85lbb7ltYnzg==} dependencies: - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-material@4.19.16: + /@uiw/codemirror-theme-material@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-Ur5khZLOhhcHXkFsNwcT4v0zijTnEvPAN9jJRXoXwuNR+JR5izYKlBGSPrjy71Vc9fjPHVAl4i3M/uZbQjDuhA==} dependencies: - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-noctis-lilac@4.19.16: + /@uiw/codemirror-theme-noctis-lilac@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-bDz9glGA3w7ZNCFH7UBmXkzFo6IXTb5NW4y8olfdqJfmsn4IUYDyoj3zYXIGpgCrIpUlqtUyP1djBXyOsfKthQ==} dependencies: - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-nord@4.19.16: + /@uiw/codemirror-theme-nord@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-8nvVNoKRNdr5xOVmUESJ9grePYk46wc4ElY+jLkfOAsbpYV7YhCFo2fL3SofjK+758HkuIkzsp3hIooKvLyxNg==} dependencies: - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-okaidia@4.19.16: + /@uiw/codemirror-theme-okaidia@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-c2ZNsWcXfzXixPrYcszRSCvI72Gcu3vCwqlEAMwli3Y6OtwqTrPT493WBgjJcOV+bsjJdg+F0iVEeXFjtFmchQ==} dependencies: - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-solarized@4.19.16: + /@uiw/codemirror-theme-solarized@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-KXkmjQOBHhzt5Y4kfqiO90ut+j/5wb25YfG+3O4AOcEpO9lmApMkJJq3VEVl4oqqH1kEIYz5B0K5A6wwTK55NQ==} dependencies: - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-sublime@4.19.16: + /@uiw/codemirror-theme-sublime@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-fKbEMoYm4T5lcjoBy90saXENgysXatc4mwFenRs4vwn0lJfISb/QOgy4WNfUmrwNRYh+XdH6NfPwu5bujZhmzQ==} dependencies: - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-tokyo-night-day@4.19.16: + /@uiw/codemirror-theme-tokyo-night-day@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-lE43sX4usVXvLBQ3BwrtS8HuD0rnDJ+No3ZFP4soqgQIpby7Mq0DybLOV0RiDBN0lYUaEobwkW0NulMNBoTPrg==} dependencies: - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-tokyo-night-storm@4.19.16: + /@uiw/codemirror-theme-tokyo-night-storm@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-0lX80vsUoIYSkcNw0gUAC96UdfCjjL8qtWJ7Ov3C98B9XDITNQwgoUdTE23d1zYvZHLzpvx/RW1XKQGyl89oRQ==} dependencies: - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-tokyo-night@4.19.16: + /@uiw/codemirror-theme-tokyo-night@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-BIDnbjGM0q3Thef67+XFig48oYTSGEoaAnIwOvSt0cNO+siCk3lPTtT55OwdfeYMTANxIgtncpCglU2UJc6gcQ==} dependencies: - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-vscode@4.19.16: + /@uiw/codemirror-theme-vscode@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-DQa6MOuwGRrxSZexEUs1c4SJiTkDTnC9M+w98kauM3CCe5mEAbQczObse0mVgVPp4g6rXvPdWlVXaj6y8bbFKQ==} dependencies: - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-theme-xcode@4.19.16: + /@uiw/codemirror-theme-xcode@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-I7UscwaI98n4aK7upHjASjWdEzgRx4+rIAybaFCTAL8e1enmyjjMNkZOpbp4ciwKJUaDpCBKPWf4mj0tkoHb9w==} dependencies: - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-themes-all@4.19.16: + /@uiw/codemirror-themes-all@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-LXc7SJpo2hp1IeTtI/h86MN+Q4X6kCIsJv5Hi2mH906qSfhuGzqHFw4gfIpPfAWznNROAJXD3/gL/8xic1kEMw==} dependencies: - '@uiw/codemirror-theme-abcdef': 4.19.16 - '@uiw/codemirror-theme-androidstudio': 4.19.16 - '@uiw/codemirror-theme-atomone': 4.19.16 - '@uiw/codemirror-theme-aura': 4.19.16 - '@uiw/codemirror-theme-bbedit': 4.19.16 - '@uiw/codemirror-theme-bespin': 4.19.16 - '@uiw/codemirror-theme-darcula': 4.19.16 - '@uiw/codemirror-theme-dracula': 4.19.16 - '@uiw/codemirror-theme-duotone': 4.19.16 - '@uiw/codemirror-theme-eclipse': 4.19.16 - '@uiw/codemirror-theme-github': 4.19.16 - '@uiw/codemirror-theme-gruvbox-dark': 4.19.16 - '@uiw/codemirror-theme-material': 4.19.16 - '@uiw/codemirror-theme-noctis-lilac': 4.19.16 - '@uiw/codemirror-theme-nord': 4.19.16 - '@uiw/codemirror-theme-okaidia': 4.19.16 - '@uiw/codemirror-theme-solarized': 4.19.16 - '@uiw/codemirror-theme-sublime': 4.19.16 - '@uiw/codemirror-theme-tokyo-night': 4.19.16 - '@uiw/codemirror-theme-tokyo-night-day': 4.19.16 - '@uiw/codemirror-theme-tokyo-night-storm': 4.19.16 - '@uiw/codemirror-theme-vscode': 4.19.16 - '@uiw/codemirror-theme-xcode': 4.19.16 - '@uiw/codemirror-themes': 4.19.16 + '@uiw/codemirror-theme-abcdef': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-theme-androidstudio': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-theme-atomone': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-theme-aura': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-theme-bbedit': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-theme-bespin': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-theme-darcula': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-theme-dracula': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-theme-duotone': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-theme-eclipse': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-theme-github': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-theme-gruvbox-dark': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-theme-material': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-theme-noctis-lilac': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-theme-nord': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-theme-okaidia': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-theme-solarized': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-theme-sublime': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-theme-tokyo-night': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-theme-tokyo-night-day': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-theme-tokyo-night-storm': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-theme-vscode': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-theme-xcode': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@uiw/codemirror-themes': 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' - '@codemirror/view' dev: false - /@uiw/codemirror-themes@4.19.16: - resolution: {integrity: sha512-c16zrvMEEfNkYydjwa6Eq+aDrYCbtmt4O0jBWPX1P4CxFATCn59aeW9HFZ4uqMko8aYOiTupOsizxlJ+MBwW2Q==} - peerDependencies: - '@codemirror/language': '>=6.0.0' - '@codemirror/state': '>=6.0.0' - '@codemirror/view': '>=6.0.0' - dependencies: - '@codemirror/language': 6.6.0 - dev: false - /@uiw/codemirror-themes@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-c16zrvMEEfNkYydjwa6Eq+aDrYCbtmt4O0jBWPX1P4CxFATCn59aeW9HFZ4uqMko8aYOiTupOsizxlJ+MBwW2Q==} peerDependencies: @@ -4788,11 +4955,14 @@ packages: '@codemirror/view': 6.10.0 dev: false - /@uiw/react-codemirror@4.19.16(@codemirror/autocomplete@6.6.0)(@codemirror/language@6.6.0)(@codemirror/lint@6.1.0)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(react-dom@18.2.0)(react@18.2.0): + /@uiw/react-codemirror@4.19.16(@babel/runtime@7.20.13)(@codemirror/autocomplete@6.6.0)(@codemirror/language@6.6.0)(@codemirror/lint@6.1.0)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/theme-one-dark@6.1.0)(@codemirror/view@6.10.0)(codemirror@6.0.1)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-uElraR7Mvwz2oZKrmtF5hmIB8dAlIiU65nfg484e/V9k4PV6/5KtPUQL3JPO4clH2pcd+TQqRTQrFFkP/D25ew==} peerDependencies: + '@babel/runtime': '>=7.11.0' '@codemirror/state': '>=6.0.0' + '@codemirror/theme-one-dark': '>=6.0.0' '@codemirror/view': '>=6.0.0' + codemirror: '>=6.0.0' react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: @@ -4802,7 +4972,7 @@ packages: '@codemirror/theme-one-dark': 6.1.0 '@codemirror/view': 6.10.0 '@uiw/codemirror-extensions-basic-setup': 4.19.16(@codemirror/autocomplete@6.6.0)(@codemirror/commands@6.2.4)(@codemirror/language@6.6.0)(@codemirror/lint@6.1.0)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) - codemirror: 6.0.1 + codemirror: 6.0.1(@lezer/common@1.0.2) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: @@ -4812,14 +4982,17 @@ packages: - '@codemirror/search' dev: false - /@vite-pwa/astro@0.1.4(astro@2.3.2)(vite-plugin-pwa@0.16.5): + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + /@vite-pwa/astro@0.1.4(astro@3.4.2)(vite-plugin-pwa@0.16.5): resolution: {integrity: sha512-OmpaMmF9ogxI/YeUFNS0VDhaoPWvoVdRg0iEiQVz4oIQ+AdEjKNx7h0Xbz9p10/tA8EPX+/ugBMUT0xERMAuyQ==} peerDependencies: astro: ^1.6.0 || ^2.0.0 || ^3.0.0 vite-plugin-pwa: '>=0.16.5 <1' dependencies: - astro: 2.3.2(@types/node@18.16.3) - vite-plugin-pwa: 0.16.5(workbox-window@7.0.0) + astro: 3.4.2(@types/node@18.16.3)(typescript@4.9.4) + vite-plugin-pwa: 0.16.5(vite@4.5.0)(workbox-build@7.0.0)(workbox-window@7.0.0) dev: true /@vitejs/plugin-react@4.0.0(vite@4.3.3): @@ -4837,6 +5010,22 @@ packages: - supports-color dev: true + /@vitejs/plugin-react@4.1.0(vite@4.5.0): + resolution: {integrity: sha512-rM0SqazU9iqPUraQ2JlIvReeaxOoRj6n+PzB1C0cBzIbd8qP336nC39/R9yPi3wVcah7E7j/kdU1uCUqMEU4OQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.23.2) + '@types/babel__core': 7.20.3 + react-refresh: 0.14.0 + vite: 4.5.0(@types/node@18.16.3) + transitivePeerDependencies: + - supports-color + dev: false + /@vitest/expect@0.33.0: resolution: {integrity: sha512-sVNf+Gla3mhTCxNJx+wJLDPp/WcstOe0Ksqz4Vec51MmgMth/ia0MGFEkIZmVGeTL5HtjYR4Wl/ZxBxBXZJTzQ==} dependencies: @@ -4885,18 +5074,6 @@ packages: pretty-format: 29.6.1 dev: true - /@vscode/emmet-helper@2.8.6: - resolution: {integrity: sha512-IIB8jbiKy37zN8bAIHx59YmnIelY78CGHtThnibD/d3tQOKRY83bYVi9blwmZVUZh6l9nfkYH3tvReaiNxY9EQ==} - dependencies: - emmet: 2.3.6 - jsonc-parser: 2.3.1 - vscode-languageserver-textdocument: 1.0.8 - vscode-languageserver-types: 3.17.2 - vscode-uri: 2.1.2 - - /@vscode/l10n@0.0.11: - resolution: {integrity: sha512-ukOMWnCg1tCvT7WnDfsUKQOFDQGsyR5tNgRpwmqi+5/vzU3ghdDXzvIM4IOPdSb3OeSsBNvmSL8nxIVOqi2WXA==} - /@yarnpkg/lockfile@1.1.0: resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} dev: true @@ -4953,7 +5130,6 @@ packages: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.8.2 - dev: true /acorn-walk@8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} @@ -5008,7 +5184,6 @@ packages: fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - dev: true /ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} @@ -5145,7 +5320,6 @@ packages: /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - dev: true /array-back@1.0.4: resolution: {integrity: sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==} @@ -5252,69 +5426,71 @@ packages: hasBin: true dev: false - /astro@2.3.2(@types/node@18.16.3): - resolution: {integrity: sha512-8nv7KG3LpKRh1/2fpOkfXvhvzgYKPYrwztnvjdASaUCT1E9j8Vdsagc11b8M+IbLkR8HwDAn/qDV4KvB3AW9nQ==} - engines: {node: '>=16.12.0', npm: '>=6.14.0'} + /astro@3.4.2(@types/node@18.16.3)(typescript@4.9.4): + resolution: {integrity: sha512-t+EjGXvmr8/x/3punIC7aGHwaseRYV4uWVaEcffUXFpGRv6z7UNffQwjyyuPjWbDj2pOPquKhQE1GnfK0V4ZNw==} + engines: {node: '>=18.14.1', npm: '>=6.14.0'} hasBin: true - peerDependencies: - sharp: ^0.31.3 - peerDependenciesMeta: - sharp: - optional: true dependencies: - '@astrojs/compiler': 1.3.2 - '@astrojs/language-server': 0.28.3 - '@astrojs/markdown-remark': 2.1.4(astro@2.3.2) - '@astrojs/telemetry': 2.1.0 - '@astrojs/webapi': 2.1.0 - '@babel/core': 7.20.12 - '@babel/generator': 7.20.14 - '@babel/parser': 7.21.4 - '@babel/plugin-transform-react-jsx': 7.20.13(@babel/core@7.20.12) - '@babel/traverse': 7.20.13 - '@babel/types': 7.20.7 - '@types/babel__core': 7.20.0 - '@types/yargs-parser': 21.0.0 - acorn: 8.8.2 - boxen: 6.2.1 + '@astrojs/compiler': 2.2.1 + '@astrojs/internal-helpers': 0.2.1 + '@astrojs/markdown-remark': 3.3.0(astro@3.4.2) + '@astrojs/telemetry': 3.0.4 + '@babel/core': 7.23.2 + '@babel/generator': 7.23.0 + '@babel/parser': 7.23.0 + '@babel/plugin-transform-react-jsx': 7.22.15(@babel/core@7.23.2) + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 + '@types/babel__core': 7.20.3 + acorn: 8.10.0 + boxen: 7.1.1 chokidar: 3.5.3 - ci-info: 3.7.1 + ci-info: 3.9.0 + clsx: 2.0.0 common-ancestor-path: 1.0.1 cookie: 0.5.0 debug: 4.3.4 - deepmerge-ts: 4.2.2 - devalue: 4.2.2 + deterministic-object-hash: 1.3.1 + devalue: 4.3.2 diff: 5.1.0 - es-module-lexer: 1.1.0 + es-module-lexer: 1.3.1 + esbuild: 0.19.5 estree-walker: 3.0.3 - execa: 6.1.0 - fast-glob: 3.2.12 + execa: 8.0.1 + fast-glob: 3.3.1 github-slugger: 2.0.0 gray-matter: 4.0.3 html-escaper: 3.0.3 + http-cache-semantics: 4.1.1 + js-yaml: 4.1.0 kleur: 4.1.5 - magic-string: 0.27.0 + magic-string: 0.30.5 + mdast-util-to-hast: 12.3.0 mime: 3.0.0 - ora: 6.1.2 + ora: 7.0.1 + p-limit: 4.0.0 + p-queue: 7.4.1 path-to-regexp: 6.2.1 - preferred-pm: 3.0.3 + preferred-pm: 3.1.2 + probe-image-size: 7.2.3 prompts: 2.4.2 rehype: 12.0.1 - semver: 7.3.8 + resolve: 1.22.8 + semver: 7.5.4 server-destroy: 1.0.1 - shiki: 0.11.1 - slash: 4.0.0 - string-width: 5.1.2 - strip-ansi: 7.0.1 - supports-esm: 1.0.0 - tsconfig-resolver: 3.0.1 - typescript: 4.9.4 + shikiji: 0.6.10 + string-width: 6.1.0 + strip-ansi: 7.1.0 + tsconfck: 3.0.0(typescript@4.9.4) unist-util-visit: 4.1.2 - vfile: 5.3.6 - vite: 4.4.5(@types/node@18.16.3) - vitefu: 0.2.4(vite@4.4.5) + vfile: 5.3.7 + vite: 4.5.0(@types/node@18.16.3) + vitefu: 0.2.4(vite@4.5.0) + which-pm: 2.1.1 yargs-parser: 21.1.1 - zod: 3.21.4 + zod: 3.22.4 + optionalDependencies: + sharp: 0.32.6 transitivePeerDependencies: - '@types/node' - less @@ -5324,6 +5500,7 @@ packages: - sugarss - supports-color - terser + - typescript /async@3.2.4: resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} @@ -5360,6 +5537,23 @@ packages: picocolors: 1.0.0 postcss: 8.4.23 postcss-value-parser: 4.2.0 + dev: true + + /autoprefixer@10.4.16(postcss@8.4.31): + resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.22.1 + caniuse-lite: 1.0.30001559 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false /available-typed-arrays@1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} @@ -5376,42 +5570,46 @@ packages: - debug dev: true + /b4a@1.6.4: + resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} + optional: true + /babel-plugin-add-module-exports@0.2.1: resolution: {integrity: sha512-3AN/9V/rKuv90NG65m4tTHsI04XrCKsWbztIcW7a8H5iIN7WlvWucRtVV0V/rT4QvtA11n5Vmp20fLwfMWqp6g==} dev: false - /babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.21.5): + /babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.23.2): resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.21.5 - '@babel/core': 7.21.5 - '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.21.5) - semver: 6.3.0 + '@babel/compat-data': 7.23.2 + '@babel/core': 7.23.2 + '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.23.2) + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.6.0(@babel/core@7.21.5): + /babel-plugin-polyfill-corejs3@0.6.0(@babel/core@7.23.2): resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.23.2) core-js-compat: 3.27.2 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.4.1(@babel/core@7.21.5): + /babel-plugin-polyfill-regenerator@0.4.1(@babel/core@7.23.2): resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.23.2) transitivePeerDependencies: - supports-color dev: true @@ -5449,7 +5647,6 @@ packages: buffer: 5.7.1 inherits: 2.0.4 readable-stream: 3.6.0 - dev: true /bl@5.1.0: resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} @@ -5462,13 +5659,13 @@ packages: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} dev: true - /boxen@6.2.1: - resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /boxen@7.1.1: + resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} + engines: {node: '>=14.16'} dependencies: ansi-align: 3.0.1 - camelcase: 6.3.0 - chalk: 4.1.2 + camelcase: 7.0.1 + chalk: 5.2.0 cli-boxes: 3.0.0 string-width: 5.1.2 type-fest: 2.19.0 @@ -5502,6 +5699,17 @@ packages: electron-to-chromium: 1.4.284 node-releases: 2.0.8 update-browserslist-db: 1.0.10(browserslist@4.21.5) + dev: true + + /browserslist@4.22.1: + resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001559 + electron-to-chromium: 1.4.574 + node-releases: 2.0.13 + update-browserslist-db: 1.0.13(browserslist@4.22.1) /buffer-alloc-unsafe@1.1.0: resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} @@ -5526,7 +5734,6 @@ packages: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - dev: true /buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} @@ -5556,12 +5763,6 @@ packages: dependencies: semver: 7.3.8 - /busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} - dependencies: - streamsearch: 1.1.0 - /byte-size@7.0.0: resolution: {integrity: sha512-NNiBxKgxybMBtWdmvx7ZITJi4ZG+CYUgwOSZTfqB1qogkRHrhbQE/R2r5Fh94X+InN5MCYz6SvB/ejHMj/HbsQ==} engines: {node: '>=10'} @@ -5638,7 +5839,6 @@ packages: /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - dev: true /camelcase-css@2.0.1: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} @@ -5658,12 +5858,16 @@ packages: engines: {node: '>=6'} dev: true - /camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} + /camelcase@7.0.1: + resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} + engines: {node: '>=14.16'} /caniuse-lite@1.0.30001481: resolution: {integrity: sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==} + dev: true + + /caniuse-lite@1.0.30001559: + resolution: {integrity: sha512-cPiMKZgqgkg5LY3/ntGeLFUpi6tzddBNS58A4tnTgQw1zON7u2sZMU7SzOeVH4tj20++9ggL+V6FDOFMTaFFYA==} /canvas@2.11.2: resolution: {integrity: sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==} @@ -5727,6 +5931,10 @@ packages: resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + /character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} @@ -5770,7 +5978,6 @@ packages: /chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - dev: true /chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} @@ -5780,8 +5987,8 @@ packages: resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} dev: true - /ci-info@3.7.1: - resolution: {integrity: sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==} + /ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} /claviature@0.1.0: @@ -5818,6 +6025,11 @@ packages: /cli-spinners@2.7.0: resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==} engines: {node: '>=6'} + dev: true + + /cli-spinners@2.9.1: + resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==} + engines: {node: '>=6'} /cli-width@3.0.0: resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} @@ -5866,6 +6078,7 @@ packages: /clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} + dev: true /clone@2.1.2: resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} @@ -5880,6 +6093,10 @@ packages: readable-stream: 2.3.7 dev: false + /clsx@2.0.0: + resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} + engines: {node: '>=6'} + /cmd-shim@5.0.0: resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -5896,16 +6113,18 @@ packages: resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} engines: {node: '>=0.10.0'} - /codemirror@6.0.1: + /codemirror@6.0.1(@lezer/common@1.0.2): resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==} dependencies: - '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2) '@codemirror/commands': 6.2.4 '@codemirror/language': 6.6.0 '@codemirror/lint': 6.1.0 '@codemirror/search': 6.2.3 '@codemirror/state': 6.2.0 '@codemirror/view': 6.10.0 + transitivePeerDependencies: + - '@lezer/common' dev: false /collect-all@1.0.4: @@ -5933,10 +6152,25 @@ packages: /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + /color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + optional: true + /color-support@1.1.3: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} hasBin: true + /color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + optional: true + /columnify@1.6.0: resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} engines: {node: '>=8.0.0'} @@ -6143,6 +6377,10 @@ packages: /convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + dev: true + + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} /cookie@0.5.0: resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} @@ -6151,7 +6389,7 @@ packages: /core-js-compat@3.27.2: resolution: {integrity: sha512-welaYuF7ZtbYKGrIy7y3eb40d37rG1FvzEOfe7hSLd2iD6duMDqUhRfSvCGyC46HhR6Y8JXXdZ2lnRUMkPBpvg==} dependencies: - browserslist: 4.21.5 + browserslist: 4.22.1 dev: true /core-util-is@1.0.3: @@ -6236,7 +6474,6 @@ packages: optional: true dependencies: ms: 2.0.0 - dev: false /debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} @@ -6247,7 +6484,6 @@ packages: optional: true dependencies: ms: 2.1.3 - dev: true /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} @@ -6289,7 +6525,6 @@ packages: engines: {node: '>=10'} dependencies: mimic-response: 3.1.0 - dev: true /dedent@0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} @@ -6305,27 +6540,25 @@ packages: /deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} - dev: true /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - /deepmerge-ts@4.2.2: - resolution: {integrity: sha512-Ka3Kb21tiWjvQvS9U+1Dx+aqFAHsdTnMdYptLTmC2VAmDFMugWMY1e15aTODstipmCun8iNuqeSfcx6rsUUk0Q==} - engines: {node: '>=12.4.0'} - /deepmerge@4.2.2: resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} engines: {node: '>=0.10.0'} + dev: true /defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: clone: 1.0.4 + dev: true /define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} + dev: true /define-properties@1.1.4: resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} @@ -6393,6 +6626,11 @@ packages: resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==} engines: {node: '>=8'} + /detect-libc@2.0.2: + resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} + engines: {node: '>=8'} + optional: true + /detective-amd@4.0.1: resolution: {integrity: sha512-bDo22IYbJ8yzALB0Ow5CQLtyhU1BpDksLB9dsWHI9Eh0N3OQR6aQqhjPsNDd69ncYwRfL1sTo7OA9T3VRVSe2Q==} engines: {node: '>=12'} @@ -6472,8 +6710,16 @@ packages: - supports-color dev: false - /devalue@4.2.2: - resolution: {integrity: sha512-Pkwd8qrI9O20VJ14fBNHu+on99toTNZFbgWRpZbC0zbDXpnE2WHYcrC1fHhMsF/3Ee+2yaW7vEujAT7fCYgqrA==} + /deterministic-object-hash@1.3.1: + resolution: {integrity: sha512-kQDIieBUreEgY+akq0N7o4FzZCr27dPG1xr3wq267vPwDlSXQ3UMcBXHqTGUBaM/5WDS1jwTYjxRhUzHeuiAvw==} + + /devalue@4.3.2: + resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} + + /devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + dependencies: + dequal: 2.0.3 /didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} @@ -6532,7 +6778,6 @@ packages: engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 - dev: true /dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} @@ -6574,12 +6819,13 @@ packages: /electron-to-chromium@1.4.284: resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} + dev: true - /emmet@2.3.6: - resolution: {integrity: sha512-pLS4PBPDdxuUAmw7Me7+TcHbykTsBKN/S9XJbUOMFQrNv9MoshzyMFK/R57JBm94/6HSL4vHnDeEmxlC82NQ4A==} - dependencies: - '@emmetio/abbreviation': 2.2.3 - '@emmetio/css-abbreviation': 2.1.4 + /electron-to-chromium@1.4.574: + resolution: {integrity: sha512-bg1m8L0n02xRzx4LsTTMbBPiUd9yIR+74iPtS/Ao65CuXvhVZHP0ym1kSdDG3yHFDXqHQQBKujlN1AQ8qZnyFg==} + + /emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -6599,7 +6845,6 @@ packages: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: once: 1.4.0 - dev: true /enhanced-resolve@5.12.0: resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==} @@ -6620,6 +6865,10 @@ packages: resolution: {integrity: sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==} dev: true + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + /env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -6680,12 +6929,8 @@ packages: which-typed-array: 1.1.9 dev: true - /es-module-lexer@1.1.0: - resolution: {integrity: sha512-fJg+1tiyEeS8figV+fPcPpm8WqJEflG3yPU0NOm5xMvrNkuiy7HzX/Ljng4Y0hAoiw4/3hQTCFYw+ub8+a2pRA==} - - /es-module-lexer@1.2.1: - resolution: {integrity: sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==} - dev: false + /es-module-lexer@1.3.1: + resolution: {integrity: sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==} /es-set-tostringtag@2.0.1: resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} @@ -6795,6 +7040,35 @@ packages: '@esbuild/win32-ia32': 0.18.20 '@esbuild/win32-x64': 0.18.20 + /esbuild@0.19.5: + resolution: {integrity: sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.19.5 + '@esbuild/android-arm64': 0.19.5 + '@esbuild/android-x64': 0.19.5 + '@esbuild/darwin-arm64': 0.19.5 + '@esbuild/darwin-x64': 0.19.5 + '@esbuild/freebsd-arm64': 0.19.5 + '@esbuild/freebsd-x64': 0.19.5 + '@esbuild/linux-arm': 0.19.5 + '@esbuild/linux-arm64': 0.19.5 + '@esbuild/linux-ia32': 0.19.5 + '@esbuild/linux-loong64': 0.19.5 + '@esbuild/linux-mips64el': 0.19.5 + '@esbuild/linux-ppc64': 0.19.5 + '@esbuild/linux-riscv64': 0.19.5 + '@esbuild/linux-s390x': 0.19.5 + '@esbuild/linux-x64': 0.19.5 + '@esbuild/netbsd-x64': 0.19.5 + '@esbuild/openbsd-x64': 0.19.5 + '@esbuild/sunos-x64': 0.19.5 + '@esbuild/win32-arm64': 0.19.5 + '@esbuild/win32-ia32': 0.19.5 + '@esbuild/win32-x64': 0.19.5 + /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -6811,7 +7085,6 @@ packages: /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - dev: true /escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} @@ -6868,12 +7141,13 @@ packages: - supports-color dev: true - /eslint-plugin-es@4.1.0: + /eslint-plugin-es@4.1.0(eslint@8.39.0): resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: + eslint: 8.39.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: false @@ -6910,15 +7184,16 @@ packages: - supports-color dev: true - /eslint-plugin-n@15.6.1: + /eslint-plugin-n@15.6.1(eslint@8.39.0): resolution: {integrity: sha512-R9xw9OtCRxxaxaszTQmQAlPgM+RdGjaL1akWuY/Fv9fRAi8Wj4CUKc6iYVG8QNRjRuo8/BqVYIpfqberJUEacA==} engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' dependencies: builtins: 5.0.1 - eslint-plugin-es: 4.1.0 - eslint-utils: 3.0.0 + eslint: 8.39.0 + eslint-plugin-es: 4.1.0(eslint@8.39.0) + eslint-utils: 3.0.0(eslint@8.39.0) ignore: 5.2.4 is-core-module: 2.11.0 minimatch: 3.1.2 @@ -6932,7 +7207,6 @@ packages: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - dev: true /eslint-utils@2.1.0: resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} @@ -6941,12 +7215,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: false - /eslint-utils@3.0.0: + /eslint-utils@3.0.0(eslint@8.39.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: + eslint: 8.39.0 eslint-visitor-keys: 2.1.0 dev: false @@ -6968,7 +7243,6 @@ packages: /eslint-visitor-keys@3.4.0: resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true /eslint@8.39.0: resolution: {integrity: sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==} @@ -7017,7 +7291,6 @@ packages: text-table: 0.2.0 transitivePeerDependencies: - supports-color - dev: true /espree@9.5.1: resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==} @@ -7026,7 +7299,6 @@ packages: acorn: 8.8.2 acorn-jsx: 5.3.2(acorn@8.8.2) eslint-visitor-keys: 3.4.0 - dev: true /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} @@ -7045,14 +7317,12 @@ packages: engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 - dev: true /esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 - dev: true /estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} @@ -7095,10 +7365,6 @@ packages: resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} dev: true - /estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - dev: false - /estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: @@ -7116,6 +7382,9 @@ packages: /eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + /eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + /events@1.1.1: resolution: {integrity: sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==} engines: {node: '>=0.4.x'} @@ -7124,6 +7393,7 @@ packages: /events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} + dev: true /execa@5.0.0: resolution: {integrity: sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==} @@ -7155,24 +7425,23 @@ packages: strip-final-newline: 2.0.0 dev: true - /execa@6.1.0: - resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} dependencies: cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 3.0.1 + get-stream: 8.0.1 + human-signals: 5.0.0 is-stream: 3.0.0 merge-stream: 2.0.0 npm-run-path: 5.1.0 onetime: 6.0.0 - signal-exit: 3.0.7 + signal-exit: 4.1.0 strip-final-newline: 3.0.0 /expand-template@2.0.3: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} - dev: true /ext@1.7.0: resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} @@ -7200,7 +7469,10 @@ packages: /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true + + /fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + optional: true /fast-glob@3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} @@ -7235,7 +7507,6 @@ packages: /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: true /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} @@ -7245,12 +7516,6 @@ packages: dependencies: reusify: 1.0.4 - /fault@2.0.1: - resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} - dependencies: - format: 0.2.2 - dev: false - /fetch-blob@3.2.0: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} @@ -7277,7 +7542,6 @@ packages: engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.0.4 - dev: true /file-set@4.0.2: resolution: {integrity: sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==} @@ -7366,7 +7630,6 @@ packages: dependencies: flatted: 3.2.7 rimraf: 3.0.2 - dev: true /flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} @@ -7375,7 +7638,6 @@ packages: /flatted@3.2.7: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} - dev: true /follow-redirects@1.15.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} @@ -7410,11 +7672,6 @@ packages: mime-types: 2.1.35 dev: true - /format@0.2.2: - resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} - engines: {node: '>=0.4.x'} - dev: false - /formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} @@ -7425,6 +7682,10 @@ packages: /fraction.js@4.2.0: resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} + /fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + dev: false + /from2@2.3.0: resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} dependencies: @@ -7434,7 +7695,6 @@ packages: /fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - dev: true /fs-extra@11.1.1: resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} @@ -7486,6 +7746,9 @@ packages: /function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + /function.prototype.name@1.1.5: resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} engines: {node: '>= 0.4'} @@ -7598,6 +7861,11 @@ packages: /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} + dev: true + + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} @@ -7657,10 +7925,6 @@ packages: /github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} - dev: true - - /github-slugger@1.5.0: - resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} /github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} @@ -7750,7 +8014,6 @@ packages: engines: {node: '>=8'} dependencies: type-fest: 0.20.2 - dev: true /globalthis@1.0.3: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} @@ -7759,9 +8022,6 @@ packages: define-properties: 1.1.4 dev: true - /globalyzer@0.1.0: - resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} - /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -7773,9 +8033,6 @@ packages: merge2: 1.4.1 slash: 3.0.0 - /globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - /gonzales-pe@4.3.0: resolution: {integrity: sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==} engines: {node: '>=0.6.0'} @@ -7843,7 +8100,6 @@ packages: /grapheme-splitter@1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - dev: true /gray-matter@4.0.3: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} @@ -7884,11 +8140,6 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - /has-package-exports@1.3.0: - resolution: {integrity: sha512-e9OeXPQnmPhYoJ63lXC4wWe34TxEGZDZ3OQX9XRqp2VwsfLl3bQBy7VehLnd34g3ef8CmYlBLGqEMKXuz8YazQ==} - dependencies: - '@ljharb/has-package-exports-patterns': 0.0.2 - /has-property-descriptors@1.0.0: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: @@ -7921,6 +8172,12 @@ packages: dependencies: function-bind: 1.1.1 + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + /hast-util-from-parse5@7.1.1: resolution: {integrity: sha512-R6PoNcUs89ZxLJmMWsVbwSWuz95/9OriyQZ3e2ybwqGsRXzhA6gv49rgGmQvLbZuSNDv9fCg7vV7gXUsvtUFaA==} dependencies: @@ -7928,10 +8185,22 @@ packages: '@types/unist': 2.0.6 hastscript: 7.2.0 property-information: 6.2.0 - vfile: 5.3.6 + vfile: 5.3.7 vfile-location: 4.0.1 web-namespaces: 2.0.1 + /hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} + dependencies: + '@types/hast': 3.0.2 + '@types/unist': 3.0.1 + devlop: 1.1.0 + hastscript: 8.0.0 + property-information: 6.2.0 + vfile: 6.0.1 + vfile-location: 5.0.2 + web-namespaces: 2.0.1 + /hast-util-has-property@1.0.4: resolution: {integrity: sha512-ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg==} dev: false @@ -7958,6 +8227,11 @@ packages: dependencies: '@types/hast': 2.3.4 + /hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + dependencies: + '@types/hast': 3.0.2 + /hast-util-raw@7.2.3: resolution: {integrity: sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==} dependencies: @@ -7969,7 +8243,24 @@ packages: parse5: 6.0.1 unist-util-position: 4.0.4 unist-util-visit: 4.1.2 - vfile: 5.3.6 + vfile: 5.3.7 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + /hast-util-raw@9.0.1: + resolution: {integrity: sha512-5m1gmba658Q+lO5uqL5YNGQWeh1MYWZbZmWrM5lncdcuiXuo5E2HT/CIOp0rLF8ksfSwiCVJ3twlgVRyTGThGA==} + dependencies: + '@types/hast': 3.0.2 + '@types/unist': 3.0.1 + '@ungap/structured-clone': 1.2.0 + hast-util-from-parse5: 8.0.1 + hast-util-to-parse5: 8.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.0.2 + parse5: 7.1.2 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.1 web-namespaces: 2.0.1 zwitch: 2.0.4 @@ -8010,6 +8301,22 @@ packages: stringify-entities: 4.0.3 zwitch: 2.0.4 + /hast-util-to-html@9.0.0: + resolution: {integrity: sha512-IVGhNgg7vANuUA2XKrT6sOIIPgaYZnmLx3l/CCOAK0PtgfoHrZwX7jCSYyFxHTrGmC6S9q8aQQekjp4JPZF+cw==} + dependencies: + '@types/hast': 3.0.2 + '@types/unist': 3.0.1 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-raw: 9.0.1 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.0.2 + property-information: 6.2.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.3 + zwitch: 2.0.4 + /hast-util-to-parse5@7.1.0: resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==} dependencies: @@ -8020,6 +8327,17 @@ packages: web-namespaces: 2.0.1 zwitch: 2.0.4 + /hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + dependencies: + '@types/hast': 3.0.2 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 6.2.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + /hast-util-to-string@2.0.0: resolution: {integrity: sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A==} dependencies: @@ -8029,6 +8347,11 @@ packages: /hast-util-whitespace@2.0.1: resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} + /hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + dependencies: + '@types/hast': 3.0.2 + /hastscript@7.2.0: resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==} dependencies: @@ -8038,6 +8361,15 @@ packages: property-information: 6.2.0 space-separated-tokens: 2.0.2 + /hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + dependencies: + '@types/hast': 3.0.2 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.2.0 + space-separated-tokens: 2.0.2 + /hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true @@ -8076,9 +8408,11 @@ packages: /html-void-elements@2.0.1: resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} + /html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + /http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - dev: true /http-proxy-agent@5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} @@ -8105,9 +8439,9 @@ packages: engines: {node: '>=10.17.0'} dev: true - /human-signals@3.0.1: - resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} - engines: {node: '>=12.20.0'} + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} /humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} @@ -8130,7 +8464,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 - dev: true /iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} @@ -8172,7 +8505,6 @@ packages: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - dev: true /import-local@3.1.0: resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} @@ -8183,13 +8515,12 @@ packages: resolve-cwd: 3.0.0 dev: true - /import-meta-resolve@2.2.1: - resolution: {integrity: sha512-C6lLL7EJPY44kBvA80gq4uMsVFw5x3oSKfuMl1cuZ2RkI5+UJqQXgn+6hlUew0y4ig7Ypt4CObAAIzU53Nfpuw==} + /import-meta-resolve@3.0.0: + resolution: {integrity: sha512-4IwhLhNNA8yy445rPjD/lWh++7hMDOml2eHtd58eG7h+qK3EryMuuRbsHGPikCoAgIkkDnckKfWSk2iDla/ejg==} /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - dev: true /indent-string@4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} @@ -8211,7 +8542,6 @@ packages: /ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: true /init-package-json@3.0.2: resolution: {integrity: sha512-YhlQPEjNFqlGdzrBfDNRLhvoSgX7iQRgSxgsNknRQ9ITXFT7UMfVMWhBTOh2Y+25lRnGrv5Xz8yZwQ3ACR6T3A==} @@ -8318,7 +8648,6 @@ packages: /is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - dev: false /is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} @@ -8361,6 +8690,11 @@ packages: dependencies: has: 1.0.3 + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + dependencies: + hasown: 2.0.0 + /is-core-module@2.9.0: resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} dependencies: @@ -8381,6 +8715,7 @@ packages: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} hasBin: true + dev: true /is-docker@3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} @@ -8415,6 +8750,13 @@ packages: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} dev: false + /is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + dependencies: + is-docker: 3.0.0 + /is-interactive@1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} @@ -8465,7 +8807,6 @@ packages: /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} - dev: true /is-plain-obj@1.1.0: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} @@ -8601,6 +8942,13 @@ packages: engines: {node: '>=8'} dependencies: is-docker: 2.2.1 + dev: true + + /is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + dependencies: + is-inside-container: 1.0.0 /isarray@0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} @@ -8657,7 +9005,6 @@ packages: /js-sdsl@4.3.0: resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==} - dev: true /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -8674,7 +9021,6 @@ packages: hasBin: true dependencies: argparse: 2.0.1 - dev: true /js2xmlparser@4.0.2: resolution: {integrity: sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==} @@ -8774,7 +9120,6 @@ packages: /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: true /json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} @@ -8786,7 +9131,6 @@ packages: /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - dev: true /json-stringify-nice@1.1.4: resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} @@ -8807,11 +9151,9 @@ packages: engines: {node: '>=6'} hasBin: true - /jsonc-parser@2.3.1: - resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} - /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} @@ -8974,7 +9316,6 @@ packages: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - dev: true /libnpmaccess@6.0.3: resolution: {integrity: sha512-4tkfUZprwvih2VUZYMozL7EMKgQ5q9VW2NtRyxWtQWlkLTAWHRklcAvBN49CVqEkhUw7vTX2fNgB5LzgUucgYg==} @@ -9134,7 +9475,7 @@ packages: resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} engines: {node: '>=12'} dependencies: - chalk: 5.2.0 + chalk: 5.3.0 is-unicode-supported: 1.3.0 /longest-streak@3.1.0: @@ -9179,12 +9520,6 @@ packages: sourcemap-codec: 1.4.8 dev: true - /magic-string@0.27.0: - resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.14 - /magic-string@0.30.1: resolution: {integrity: sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==} engines: {node: '>=12'} @@ -9192,6 +9527,12 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true + /magic-string@0.30.5: + resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + /make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -9307,6 +9648,13 @@ packages: '@types/unist': 2.0.6 unist-util-visit: 4.1.2 + /mdast-util-definitions@6.0.0: + resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} + dependencies: + '@types/mdast': 4.0.2 + '@types/unist': 3.0.1 + unist-util-visit: 5.0.0 + /mdast-util-find-and-replace@2.2.2: resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==} dependencies: @@ -9333,14 +9681,6 @@ packages: transitivePeerDependencies: - supports-color - /mdast-util-frontmatter@1.0.1: - resolution: {integrity: sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==} - dependencies: - '@types/mdast': 3.0.10 - mdast-util-to-markdown: 1.5.0 - micromark-extension-frontmatter: 1.0.0 - dev: false - /mdast-util-gfm-autolink-literal@1.0.2: resolution: {integrity: sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg==} dependencies: @@ -9446,19 +9786,30 @@ packages: '@types/mdast': 3.0.10 unist-util-is: 5.2.0 - /mdast-util-to-hast@12.2.6: - resolution: {integrity: sha512-Kfo1JNUsi6r6CI7ZOJ6yt/IEKMjMK4nNjQ8C+yc8YBbIlDSp9dmj0zY90ryiu6Vy4CVGv0zi1H4ZoIaYVV8cwA==} + /mdast-util-to-hast@12.3.0: + resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} dependencies: '@types/hast': 2.3.4 '@types/mdast': 3.0.10 mdast-util-definitions: 5.1.2 micromark-util-sanitize-uri: 1.1.0 trim-lines: 3.0.1 - unist-builder: 3.0.1 unist-util-generated: 2.0.1 unist-util-position: 4.0.4 unist-util-visit: 4.1.2 + /mdast-util-to-hast@13.0.2: + resolution: {integrity: sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==} + dependencies: + '@types/hast': 3.0.2 + '@types/mdast': 4.0.2 + '@ungap/structured-clone': 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + /mdast-util-to-markdown@1.5.0: resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} dependencies: @@ -9548,14 +9899,6 @@ packages: micromark-util-types: 1.0.2 uvu: 0.5.6 - /micromark-extension-frontmatter@1.0.0: - resolution: {integrity: sha512-EXjmRnupoX6yYuUJSQhrQ9ggK0iQtQlpi6xeJzVD5xscyAI+giqco5fdymayZhJMbIFecjnE2yz85S9NzIgQpg==} - dependencies: - fault: 2.0.1 - micromark-util-character: 1.1.0 - micromark-util-symbol: 1.0.1 - dev: false - /micromark-extension-gfm-autolink-literal@1.0.3: resolution: {integrity: sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==} dependencies: @@ -9737,6 +10080,12 @@ packages: micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 + /micromark-util-character@2.0.1: + resolution: {integrity: sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==} + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + /micromark-util-chunked@1.0.0: resolution: {integrity: sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==} dependencies: @@ -9771,6 +10120,9 @@ packages: /micromark-util-encode@1.0.1: resolution: {integrity: sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==} + /micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + /micromark-util-events-to-acorn@1.2.1: resolution: {integrity: sha512-mkg3BaWlw6ZTkQORrKVBW4o9ICXPxLtGz51vml5mQpKFdo9vqIX68CAx5JhTOdjQyAHH7JFmm4rh8toSPQZUmg==} dependencies: @@ -9803,6 +10155,13 @@ packages: micromark-util-encode: 1.0.1 micromark-util-symbol: 1.0.1 + /micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + dependencies: + micromark-util-character: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + /micromark-util-subtokenize@1.0.2: resolution: {integrity: sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==} dependencies: @@ -9814,9 +10173,15 @@ packages: /micromark-util-symbol@1.0.1: resolution: {integrity: sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==} + /micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + /micromark-util-types@1.0.2: resolution: {integrity: sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==} + /micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + /micromark@3.1.0: resolution: {integrity: sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==} dependencies: @@ -9879,7 +10244,6 @@ packages: /mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} - dev: true /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} @@ -10037,7 +10401,6 @@ packages: /mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - dev: true /mkdirp-infer-owner@2.0.0: resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==} @@ -10114,14 +10477,12 @@ packages: /ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - dev: false /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - dev: true /multimatch@5.0.0: resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} @@ -10173,11 +10534,20 @@ packages: /napi-build-utils@1.0.2: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} - dev: true /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - dev: true + + /needle@2.9.1: + resolution: {integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==} + engines: {node: '>= 4.4.x'} + hasBin: true + dependencies: + debug: 3.2.7 + iconv-lite: 0.4.24 + sax: 1.3.0 + transitivePeerDependencies: + - supports-color /negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} @@ -10202,12 +10572,15 @@ packages: engines: {node: '>=10'} dependencies: semver: 7.3.8 - dev: true /node-addon-api@3.2.1: resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} dev: true + /node-addon-api@6.1.0: + resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} + optional: true + /node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} @@ -10273,8 +10646,12 @@ packages: - supports-color dev: true + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + /node-releases@2.0.8: resolution: {integrity: sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==} + dev: true /node-source-walk@4.3.0: resolution: {integrity: sha512-8Q1hXew6ETzqKRAs3jjLioSxNfT1cx74ooiF8RlAONwVMcfq+UdzLC2eB5qcPldUxaE5w3ytLkrmV1TGddhZTA==} @@ -10692,6 +11069,7 @@ packages: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 + dev: true /optionator@0.8.3: resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} @@ -10715,7 +11093,6 @@ packages: prelude-ls: 1.2.1 type-check: 0.4.0 word-wrap: 1.2.3 - dev: true /ora@5.4.1: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} @@ -10732,19 +11109,19 @@ packages: wcwidth: 1.0.1 dev: true - /ora@6.1.2: - resolution: {integrity: sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /ora@7.0.1: + resolution: {integrity: sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==} + engines: {node: '>=16'} dependencies: - bl: 5.1.0 - chalk: 5.2.0 + chalk: 5.3.0 cli-cursor: 4.0.0 - cli-spinners: 2.7.0 + cli-spinners: 2.9.1 is-interactive: 2.0.0 is-unicode-supported: 1.3.0 log-symbols: 5.1.0 - strip-ansi: 7.0.1 - wcwidth: 1.0.1 + stdin-discarder: 0.1.0 + string-width: 6.1.0 + strip-ansi: 7.1.0 /os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} @@ -10794,7 +11171,6 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: yocto-queue: 1.0.0 - dev: true /p-locate@2.0.0: resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} @@ -10840,6 +11216,13 @@ packages: p-timeout: 3.2.0 dev: true + /p-queue@7.4.1: + resolution: {integrity: sha512-vRpMXmIkYF2/1hLBKisKeVYJZ8S2tZ0zEAmIJgdVKP2nq0nh4qCdf8bgw+ZgKrkh71AOCaqzwbJJk1WtdcF3VA==} + engines: {node: '>=12'} + dependencies: + eventemitter3: 5.0.1 + p-timeout: 5.1.0 + /p-reduce@2.1.0: resolution: {integrity: sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==} engines: {node: '>=8'} @@ -10852,6 +11235,10 @@ packages: p-finally: 1.0.0 dev: true + /p-timeout@5.1.0: + resolution: {integrity: sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==} + engines: {node: '>=12'} + /p-try@1.0.0: resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} engines: {node: '>=4'} @@ -10932,7 +11319,6 @@ packages: engines: {node: '>=6'} dependencies: callsites: 3.1.0 - dev: true /parse-conflict-json@3.0.1: resolution: {integrity: sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==} @@ -10996,6 +11382,11 @@ packages: /parse5@6.0.1: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.5.0 + /path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} dev: false @@ -11203,6 +11594,23 @@ packages: postcss: 8.4.23 yaml: 2.2.2 + /postcss-load-config@4.0.1(postcss@8.4.31): + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.0.6 + postcss: 8.4.31 + yaml: 2.2.2 + dev: false + /postcss-nested@6.0.1(postcss@8.4.23): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} @@ -11257,6 +11665,15 @@ packages: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 + dev: true + + /postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 /prebuild-install@7.1.1: resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} @@ -11275,7 +11692,6 @@ packages: simple-get: 4.0.1 tar-fs: 2.1.1 tunnel-agent: 0.6.0 - dev: true /precinct@9.0.1: resolution: {integrity: sha512-hVNS6JvfvlZ64B3ezKeGAcVhIuOvuAiSVzagHX/+KjVPkYWoCNkfyMgCl1bjDtAFQSlzi95NcS9ykUWrl1L1vA==} @@ -11298,8 +11714,8 @@ packages: - supports-color dev: false - /preferred-pm@3.0.3: - resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} + /preferred-pm@3.1.2: + resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==} engines: {node: '>=10'} dependencies: find-up: 5.0.0 @@ -11315,21 +11731,12 @@ packages: /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - dev: true - - /prettier-plugin-astro@0.7.2: - resolution: {integrity: sha512-mmifnkG160BtC727gqoimoxnZT/dwr8ASxpoGGl6EHevhfblSOeu+pwH1LAm5Qu1MynizktztFujHHaijLCkww==} - engines: {node: ^14.15.0 || >=16.0.0, pnpm: '>=7.14.0'} - dependencies: - '@astrojs/compiler': 0.31.4 - prettier: 2.8.8 - sass-formatter: 0.7.5 - synckit: 0.8.5 /prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} hasBin: true + dev: true /pretty-bytes@5.6.0: resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} @@ -11363,6 +11770,15 @@ packages: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} engines: {node: '>=6'} + /probe-image-size@7.2.3: + resolution: {integrity: sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==} + dependencies: + lodash.merge: 4.6.2 + needle: 2.9.1 + stream-parser: 0.3.1 + transitivePeerDependencies: + - supports-color + /proc-log@2.0.1: resolution: {integrity: sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -11444,12 +11860,10 @@ packages: dependencies: end-of-stream: 1.4.4 once: 1.4.0 - dev: true /punycode@2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} - dev: true /q@1.5.1: resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} @@ -11459,6 +11873,10 @@ packages: /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + /queue-tick@1.0.1: + resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + optional: true + /quick-lru@4.0.1: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} engines: {node: '>=8'} @@ -11501,7 +11919,6 @@ packages: ini: 1.3.8 minimist: 1.2.7 strip-json-comments: 2.0.1 - dev: true /react-dom@18.2.0(react@18.2.0): resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} @@ -11529,7 +11946,6 @@ packages: /react-refresh@0.14.0: resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} engines: {node: '>=0.10.0'} - dev: true /react@18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} @@ -11812,8 +12228,8 @@ packages: unist-util-visit: 4.1.2 dev: false - /rehype-stringify@9.0.3: - resolution: {integrity: sha512-kWiZ1bgyWlgOxpqD5HnxShKAdXtb2IUljn3hQAhySeak6IOQPPt6DeGnsIh4ixm7yKJWzm8TXFuC/lPfcWHJqw==} + /rehype-stringify@9.0.4: + resolution: {integrity: sha512-Uk5xu1YKdqobe5XpSskwPvo1XeHUUucWEQSl8hTrXt5selvca1e8K1EZ37E6YoZ4BT8BCqCdVfQW7OfHfthtVQ==} dependencies: '@types/hast': 2.3.4 hast-util-to-html: 8.0.4 @@ -11832,18 +12248,9 @@ packages: dependencies: '@types/hast': 2.3.4 rehype-parse: 8.0.4 - rehype-stringify: 9.0.3 + rehype-stringify: 9.0.4 unified: 10.1.2 - /remark-frontmatter@4.0.1: - resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==} - dependencies: - '@types/mdast': 3.0.10 - mdast-util-frontmatter: 1.0.1 - micromark-extension-frontmatter: 1.0.0 - unified: 10.1.2 - dev: false - /remark-gfm@3.0.1: resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} dependencies: @@ -11871,13 +12278,23 @@ packages: unified: 10.1.2 transitivePeerDependencies: - supports-color + dev: false + + /remark-parse@10.0.2: + resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-from-markdown: 1.3.0 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color /remark-rehype@10.1.0: resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} dependencies: '@types/hast': 2.3.4 '@types/mdast': 3.0.10 - mdast-util-to-hast: 12.2.6 + mdast-util-to-hast: 12.3.0 unified: 10.1.2 /remark-smartypants@2.0.0: @@ -11950,7 +12367,6 @@ packages: /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} - dev: true /resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} @@ -11973,6 +12389,14 @@ packages: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + /restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} @@ -12052,7 +12476,7 @@ packages: peerDependencies: rollup: ^2.0.0 dependencies: - '@babel/code-frame': 7.21.4 + '@babel/code-frame': 7.22.13 jest-worker: 26.6.2 rollup: 2.79.1 serialize-javascript: 4.0.0 @@ -12114,9 +12538,6 @@ packages: tslib: 2.5.0 dev: true - /s.color@0.0.15: - resolution: {integrity: sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==} - /sade@1.8.1: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} engines: {node: '>=6'} @@ -12139,12 +12560,6 @@ packages: /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: true - - /sass-formatter@0.7.5: - resolution: {integrity: sha512-NKFP8ddjhUYi6A/iD1cEtzkEs91U61kzqe3lY9SVNuvX7LGc88xnEN0mmsWL7Ol//YTi2GL/ol7b9XZ2+hgXuA==} - dependencies: - suf-log: 2.5.3 /sass-lookup@3.0.0: resolution: {integrity: sha512-TTsus8CfFRn1N44bvdEai1no6PqdmDiQUiqW5DlpmtT+tYnIt1tXtDIph5KA1efC+LmioJXSnCtUVpcK9gaKIg==} @@ -12154,6 +12569,9 @@ packages: commander: 2.20.3 dev: false + /sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + /scheduler@0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} dependencies: @@ -12175,6 +12593,10 @@ packages: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + /semver@7.3.4: resolution: {integrity: sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==} engines: {node: '>=10'} @@ -12190,6 +12612,13 @@ packages: dependencies: lru-cache: 6.0.0 + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + /serialize-javascript@4.0.0: resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} dependencies: @@ -12215,6 +12644,21 @@ packages: kind-of: 6.0.3 dev: true + /sharp@0.32.6: + resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==} + engines: {node: '>=14.15.0'} + requiresBuild: true + dependencies: + color: 4.2.3 + detect-libc: 2.0.2 + node-addon-api: 6.1.0 + prebuild-install: 7.1.1 + semver: 7.5.4 + simple-get: 4.0.1 + tar-fs: 3.0.4 + tunnel-agent: 0.6.0 + optional: true + /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -12225,12 +12669,10 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - /shiki@0.11.1: - resolution: {integrity: sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==} + /shikiji@0.6.10: + resolution: {integrity: sha512-WE+A5Y2ntM5hL3iJQujk97qr5Uj7PSIRXpQfrZ6h+JWPXZ8KBEDhFXc4lqNriaRq1WGOVPUT83XMOzmHiH3W8A==} dependencies: - jsonc-parser: 3.2.0 - vscode-oniguruma: 1.7.0 - vscode-textmate: 6.0.0 + hast-util-to-html: 9.0.0 /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} @@ -12252,6 +12694,10 @@ packages: engines: {node: '>=14'} dev: true + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + /sigstore@1.4.0: resolution: {integrity: sha512-N7TRpSbFjY/TrFDg6yGAQSYBrQ5s6qmPiq4pD6fkv1LoyfMsLG0NwZWG2s5q+uttLHgyVyTa0Rogx2P78rN8kQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -12281,7 +12727,12 @@ packages: decompress-response: 6.0.0 once: 1.4.0 simple-concat: 1.0.1 - dev: true + + /simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + dependencies: + is-arrayish: 0.3.2 + optional: true /sirv@2.0.2: resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==} @@ -12299,10 +12750,6 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - /slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} - /smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} @@ -12457,6 +12904,12 @@ packages: resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==} dev: true + /stdin-discarder@0.1.0: + resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + bl: 5.1.0 + /stdopt@2.2.0: resolution: {integrity: sha512-D/p41NgXOkcj1SeGhfXOwv9z1K6EV3sjAUY5aeepVbgEHv7DpKWLTjhjScyzMWAQCAgUQys1mjH0eArm4cjRGw==} dependencies: @@ -12482,16 +12935,18 @@ packages: debug: 2.6.9 transitivePeerDependencies: - supports-color - dev: false /stream-via@1.0.4: resolution: {integrity: sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==} engines: {node: '>=0.10.0'} dev: true - /streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} + /streamx@2.15.2: + resolution: {integrity: sha512-b62pAV/aeMjUoRN2C/9F0n+G8AfcJjNC0zw/ZmOHeFsIe4m4GzjVW9m6VHXVjk536NbdU9JRwKMJRfkc+zUFTg==} + dependencies: + fast-fifo: 1.3.2 + queue-tick: 1.0.1 + optional: true /string-width@1.0.2: resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} @@ -12515,7 +12970,15 @@ packages: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 - strip-ansi: 7.0.1 + strip-ansi: 7.1.0 + + /string-width@6.1.0: + resolution: {integrity: sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==} + engines: {node: '>=16'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 10.3.0 + strip-ansi: 7.1.0 /string.prototype.matchall@4.0.8: resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} @@ -12586,8 +13049,8 @@ packages: dependencies: ansi-regex: 5.0.1 - /strip-ansi@7.0.1: - resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 @@ -12603,6 +13066,7 @@ packages: /strip-bom@4.0.0: resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} engines: {node: '>=8'} + dev: true /strip-comments@2.0.1: resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==} @@ -12628,12 +13092,10 @@ packages: /strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} - dev: true /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - dev: true /strip-literal@1.0.1: resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==} @@ -12685,11 +13147,6 @@ packages: pirates: 4.0.5 ts-interface-checker: 0.1.13 - /suf-log@2.5.3: - resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==} - dependencies: - s.color: 0.0.15 - /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -12702,22 +13159,10 @@ packages: dependencies: has-flag: 4.0.0 - /supports-esm@1.0.0: - resolution: {integrity: sha512-96Am8CDqUaC0I2+C/swJ0yEvM8ZnGn4unoers/LSdE4umhX7mELzqyLzx3HnZAluq5PXIsGMKqa7NkqaeHMPcg==} - dependencies: - has-package-exports: 1.3.0 - /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /synckit@0.8.5: - resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} - engines: {node: ^14.18.0 || >=16.0.0} - dependencies: - '@pkgr/utils': 2.3.1 - tslib: 2.5.0 - /table-layout@0.4.5: resolution: {integrity: sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==} engines: {node: '>=4.0.0'} @@ -12772,7 +13217,14 @@ packages: mkdirp-classic: 0.5.3 pump: 3.0.0 tar-stream: 2.2.0 - dev: true + + /tar-fs@3.0.4: + resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==} + dependencies: + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 3.1.6 + optional: true /tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} @@ -12783,7 +13235,14 @@ packages: fs-constants: 1.0.0 inherits: 2.0.4 readable-stream: 3.6.0 - dev: true + + /tar-stream@3.1.6: + resolution: {integrity: sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==} + dependencies: + b4a: 1.6.4 + fast-fifo: 1.3.2 + streamx: 2.15.2 + optional: true /tar@6.1.11: resolution: {integrity: sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==} @@ -12889,7 +13348,6 @@ packages: /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - dev: true /thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} @@ -12919,12 +13377,6 @@ packages: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true - /tiny-glob@0.2.9: - resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} - dependencies: - globalyzer: 0.1.0 - globrex: 0.1.2 - /tinybench@2.5.0: resolution: {integrity: sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==} dev: true @@ -12996,6 +13448,18 @@ packages: /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + /tsconfck@3.0.0(typescript@4.9.4): + resolution: {integrity: sha512-w3wnsIrJNi7avf4Zb0VjOoodoO0woEqGgZGQm+LHH9przdUI+XDKsWAXwxHA1DaRTjeuZNcregSzr7RaA8zG9A==} + engines: {node: ^18 || >=20} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 4.9.4 + /tsconfig-paths@3.14.1: resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} dependencies: @@ -13013,16 +13477,6 @@ packages: strip-bom: 3.0.0 dev: true - /tsconfig-resolver@3.0.1: - resolution: {integrity: sha512-ZHqlstlQF449v8glscGRXzL6l2dZvASPCdXJRWG4gHEZlUVx2Jtmr+a2zeVG4LCsKhDXKRj5R3h0C/98UcVAQg==} - dependencies: - '@types/json5': 0.0.30 - '@types/resolve': 1.20.2 - json5: 2.2.3 - resolve: 1.22.1 - strip-bom: 4.0.0 - type-fest: 0.13.1 - /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: false @@ -13055,7 +13509,6 @@ packages: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} dependencies: safe-buffer: 5.2.1 - dev: true /type-check@0.3.2: resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} @@ -13069,17 +13522,12 @@ packages: engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 - dev: true /type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} dev: true - /type-fest@0.13.1: - resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} - engines: {node: '>=10'} - /type-fest@0.16.0: resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} engines: {node: '>=10'} @@ -13093,7 +13541,6 @@ packages: /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} - dev: true /type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} @@ -13186,6 +13633,10 @@ packages: dev: true optional: true + /ultrahtml@1.5.2: + resolution: {integrity: sha512-qh4mBffhlkiXwDAOxvSGxhL0QEQsTbnP9BozOK3OYPEGvPvdWzvAUaXNtUSMdNsKDtuyjEbyVUPFZ52SSLhLqw==} + dev: false + /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: @@ -13199,18 +13650,6 @@ packages: resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==} dev: true - /undici@5.20.0: - resolution: {integrity: sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==} - engines: {node: '>=12.18'} - dependencies: - busboy: 1.6.0 - - /undici@5.22.0: - resolution: {integrity: sha512-fR9RXCc+6Dxav4P9VV/sp5w3eFiSdOjJYsbtWfd4s5L5C4ogyuVpdKIVHeW0vV1MloM65/f7W45nR9ZxwVdyiA==} - engines: {node: '>=14.0'} - dependencies: - busboy: 1.6.0 - /unherit@3.0.1: resolution: {integrity: sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==} @@ -13283,11 +13722,6 @@ packages: crypto-random-string: 2.0.0 dev: true - /unist-builder@3.0.1: - resolution: {integrity: sha512-gnpOw7DIpCA0vpr6NqdPvTWnlPTApCTRzr+38E6hCWx3rz/cjo83SsKIlS1Z+L5ttScQ2AwutNnb8+tAvpb6qQ==} - dependencies: - '@types/unist': 2.0.6 - /unist-util-generated@2.0.1: resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==} @@ -13298,6 +13732,11 @@ packages: /unist-util-is@5.2.0: resolution: {integrity: sha512-Glt17jWwZeyqrFqOK0pF1Ded5U3yzJnFr8CG1GMjCWTp9zDo2p+cmD6pWbZU8AgM5WU3IzRv6+rBwhzsGh6hBQ==} + /unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + dependencies: + '@types/unist': 3.0.1 + /unist-util-modify-children@3.1.1: resolution: {integrity: sha512-yXi4Lm+TG5VG+qvokP6tpnk+r1EPwyYL04JWDxLvgvPV40jANh7nm3udk65OOWquvbMDe+PL9+LmkxDpTv/7BA==} dependencies: @@ -13315,6 +13754,11 @@ packages: dependencies: '@types/unist': 2.0.6 + /unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + dependencies: + '@types/unist': 3.0.1 + /unist-util-remove-position@4.0.2: resolution: {integrity: sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==} dependencies: @@ -13327,6 +13771,11 @@ packages: dependencies: '@types/unist': 2.0.6 + /unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + dependencies: + '@types/unist': 3.0.1 + /unist-util-visit-children@2.0.2: resolution: {integrity: sha512-+LWpMFqyUwLGpsQxpumsQ9o9DG2VGLFrpz+rpVXYIEdPy57GSy5HioC0g3bg/8WP9oCLlapQtklOzQ8uLS496Q==} dependencies: @@ -13344,6 +13793,12 @@ packages: '@types/unist': 2.0.6 unist-util-is: 5.2.0 + /unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + dependencies: + '@types/unist': 3.0.1 + unist-util-is: 6.0.0 + /unist-util-visit@1.4.1: resolution: {integrity: sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==} dependencies: @@ -13357,6 +13812,13 @@ packages: unist-util-is: 5.2.0 unist-util-visit-parents: 5.1.3 + /unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + dependencies: + '@types/unist': 3.0.1 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + /universal-user-agent@6.0.0: resolution: {integrity: sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==} dev: true @@ -13389,12 +13851,22 @@ packages: browserslist: 4.21.5 escalade: 3.1.1 picocolors: 1.0.0 + dev: true + + /update-browserslist-db@1.0.13(browserslist@4.22.1): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.1 + escalade: 3.1.1 + picocolors: 1.0.0 /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.0 - dev: true /use-sync-external-store@1.2.0(react@18.2.0): resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} @@ -13465,7 +13937,13 @@ packages: resolution: {integrity: sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==} dependencies: '@types/unist': 2.0.6 - vfile: 5.3.6 + vfile: 5.3.7 + + /vfile-location@5.0.2: + resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} + dependencies: + '@types/unist': 3.0.1 + vfile: 6.0.1 /vfile-message@3.1.3: resolution: {integrity: sha512-0yaU+rj2gKAyEk12ffdSbBfjnnj+b1zqTBv3OQCTn8yEB02bsPizwdBPrLJjHnK+cU9EMMcUnNv938XcZIkmdA==} @@ -13473,6 +13951,12 @@ packages: '@types/unist': 2.0.6 unist-util-stringify-position: 3.0.3 + /vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + dependencies: + '@types/unist': 3.0.1 + unist-util-stringify-position: 4.0.0 + /vfile@5.3.6: resolution: {integrity: sha512-ADBsmerdGBs2WYckrLBEmuETSPyTD4TuLxTrw0DvjirxW1ra4ZwkbzG8ndsv3Q57smvHxo677MHaQrY9yxH8cA==} dependencies: @@ -13481,6 +13965,21 @@ packages: unist-util-stringify-position: 3.0.3 vfile-message: 3.1.3 + /vfile@5.3.7: + resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} + dependencies: + '@types/unist': 2.0.6 + is-buffer: 2.0.5 + unist-util-stringify-position: 3.0.3 + vfile-message: 3.1.3 + + /vfile@6.0.1: + resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} + dependencies: + '@types/unist': 3.0.1 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + /vinyl-sourcemaps-apply@0.2.1: resolution: {integrity: sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw==} dependencies: @@ -13521,20 +14020,21 @@ packages: - terser dev: true - /vite-plugin-pwa@0.16.5(workbox-window@7.0.0): + /vite-plugin-pwa@0.16.5(vite@4.5.0)(workbox-build@7.0.0)(workbox-window@7.0.0): resolution: {integrity: sha512-Ahol4dwhMP2UHPQXkllSlXbihOaDFnvBIDPmAxoSZ1EObBUJGP4CMRyCyAVkIHjd6/H+//vH0DM2ON+XxHr81g==} engines: {node: '>=16.0.0'} peerDependencies: vite: ^3.1.0 || ^4.0.0 + workbox-build: ^7.0.0 workbox-window: ^7.0.0 dependencies: debug: 4.3.4 fast-glob: 3.3.1 pretty-bytes: 6.1.1 + vite: 4.5.0(@types/node@18.16.3) workbox-build: 7.0.0 workbox-window: 7.0.0 transitivePeerDependencies: - - '@types/babel__core' - supports-color dev: true @@ -13570,41 +14070,6 @@ packages: fsevents: 2.3.2 dev: true - /vite@4.4.5: - resolution: {integrity: sha512-4m5kEtAWHYr0O1Fu7rZp64CfO1PsRGZlD3TAB32UmQlpd7qg15VF7ROqGN5CyqN7HFuwr7ICNM2+fDWRqFEKaA==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - esbuild: 0.18.20 - postcss: 8.4.27 - rollup: 3.28.0 - optionalDependencies: - fsevents: 2.3.2 - dev: true - /vite@4.4.5(@types/node@18.16.3): resolution: {integrity: sha512-4m5kEtAWHYr0O1Fu7rZp64CfO1PsRGZlD3TAB32UmQlpd7qg15VF7ROqGN5CyqN7HFuwr7ICNM2+fDWRqFEKaA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -13639,8 +14104,44 @@ packages: rollup: 3.28.0 optionalDependencies: fsevents: 2.3.2 + dev: true - /vitefu@0.2.4(vite@4.4.5): + /vite@4.5.0(@types/node@18.16.3): + resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 18.16.3 + esbuild: 0.18.20 + postcss: 8.4.31 + rollup: 3.28.0 + optionalDependencies: + fsevents: 2.3.2 + + /vitefu@0.2.4(vite@4.5.0): resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==} peerDependencies: vite: ^3.0.0 || ^4.0.0 @@ -13648,72 +14149,7 @@ packages: vite: optional: true dependencies: - vite: 4.4.5(@types/node@18.16.3) - - /vitest@0.33.0: - resolution: {integrity: sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ==} - engines: {node: '>=v14.18.0'} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@vitest/browser': '*' - '@vitest/ui': '*' - happy-dom: '*' - jsdom: '*' - playwright: '*' - safaridriver: '*' - webdriverio: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - playwright: - optional: true - safaridriver: - optional: true - webdriverio: - optional: true - dependencies: - '@types/chai': 4.3.5 - '@types/chai-subset': 1.3.3 - '@types/node': 18.16.3 - '@vitest/expect': 0.33.0 - '@vitest/runner': 0.33.0 - '@vitest/snapshot': 0.33.0 - '@vitest/spy': 0.33.0 - '@vitest/utils': 0.33.0 - acorn: 8.10.0 - acorn-walk: 8.2.0 - cac: 6.7.14 - chai: 4.3.7 - debug: 4.3.4 - local-pkg: 0.4.3 - magic-string: 0.30.1 - pathe: 1.1.1 - picocolors: 1.0.0 - std-env: 3.3.3 - strip-literal: 1.0.1 - tinybench: 2.5.0 - tinypool: 0.6.0 - vite: 4.4.5(@types/node@18.16.3) - vite-node: 0.33.0(@types/node@18.16.3) - why-is-node-running: 2.2.2 - transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true + vite: 4.5.0(@types/node@18.16.3) /vitest@0.33.0(@vitest/ui@0.28.0): resolution: {integrity: sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ==} @@ -13781,56 +14217,6 @@ packages: - terser dev: true - /vscode-css-languageservice@6.2.3: - resolution: {integrity: sha512-EAyhyIVHpEaf+GjtI+tVe7SekdoANfG0aubnspsQwak3Qkimn/97FpAufNyXk636ngW05pjNKAR9zyTCzo6avQ==} - dependencies: - '@vscode/l10n': 0.0.11 - vscode-languageserver-textdocument: 1.0.8 - vscode-languageserver-types: 3.17.2 - vscode-uri: 3.0.7 - - /vscode-html-languageservice@5.0.4: - resolution: {integrity: sha512-tvrySfpglu4B2rQgWGVO/IL+skvU7kBkQotRlxA7ocSyRXOZUd6GA13XHkxo8LPe07KWjeoBlN1aVGqdfTK4xA==} - dependencies: - '@vscode/l10n': 0.0.11 - vscode-languageserver-textdocument: 1.0.8 - vscode-languageserver-types: 3.17.2 - vscode-uri: 3.0.7 - - /vscode-jsonrpc@8.0.2: - resolution: {integrity: sha512-RY7HwI/ydoC1Wwg4gJ3y6LpU9FJRZAUnTYMXthqhFXXu77ErDd/xkREpGuk4MyYkk4a+XDWAMqe0S3KkelYQEQ==} - engines: {node: '>=14.0.0'} - - /vscode-languageserver-protocol@3.17.2: - resolution: {integrity: sha512-8kYisQ3z/SQ2kyjlNeQxbkkTNmVFoQCqkmGrzLH6A9ecPlgTbp3wDTnUNqaUxYr4vlAcloxx8zwy7G5WdguYNg==} - dependencies: - vscode-jsonrpc: 8.0.2 - vscode-languageserver-types: 3.17.2 - - /vscode-languageserver-textdocument@1.0.8: - resolution: {integrity: sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==} - - /vscode-languageserver-types@3.17.2: - resolution: {integrity: sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA==} - - /vscode-languageserver@8.0.2: - resolution: {integrity: sha512-bpEt2ggPxKzsAOZlXmCJ50bV7VrxwCS5BI4+egUmure/oI/t4OlFzi/YNtVvY24A2UDOZAgwFGgnZPwqSJubkA==} - hasBin: true - dependencies: - vscode-languageserver-protocol: 3.17.2 - - /vscode-oniguruma@1.7.0: - resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} - - /vscode-textmate@6.0.0: - resolution: {integrity: sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ==} - - /vscode-uri@2.1.2: - resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} - - /vscode-uri@3.0.7: - resolution: {integrity: sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==} - /w3c-keyname@2.2.6: resolution: {integrity: sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==} dev: false @@ -13865,6 +14251,7 @@ packages: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: defaults: 1.0.4 + dev: true /web-midi-api@2.2.2: resolution: {integrity: sha512-lQFqcdmzoxLx1833DOC4bavfk9Cp5bjkC5SlZAceqsuUoc2j+fYSbqv45XwJqeECkCUXzB9UQ8wyWr40ppINhw==} @@ -13945,6 +14332,13 @@ packages: load-yaml-file: 0.2.0 path-exists: 4.0.0 + /which-pm@2.1.1: + resolution: {integrity: sha512-xzzxNw2wMaoCWXiGE8IJ9wuPMU+EYhFksjHxrRT8kMT5SnocBPRg69YAMtyV4D12fP582RA+k3P8H9J5EMdIxQ==} + engines: {node: '>=8.15'} + dependencies: + load-yaml-file: 0.2.0 + path-exists: 4.0.0 + /which-typed-array@1.1.9: resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} engines: {node: '>= 0.4'} @@ -14026,10 +14420,10 @@ packages: engines: {node: '>=16.0.0'} dependencies: '@apideck/better-ajv-errors': 0.3.6(ajv@8.12.0) - '@babel/core': 7.21.5 - '@babel/preset-env': 7.20.2(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/preset-env': 7.20.2(@babel/core@7.23.2) '@babel/runtime': 7.20.13 - '@rollup/plugin-babel': 5.3.1(@babel/core@7.21.5)(rollup@2.79.1) + '@rollup/plugin-babel': 5.3.1(@babel/core@7.23.2)(rollup@2.79.1) '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1) '@rollup/plugin-replace': 2.4.2(rollup@2.79.1) '@surma/rollup-plugin-off-main-thread': 2.2.3 @@ -14169,7 +14563,7 @@ packages: dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 - strip-ansi: 7.0.1 + strip-ansi: 7.1.0 /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -14313,10 +14707,9 @@ packages: /yocto-queue@1.0.0: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} - dev: true - /zod@3.21.4: - resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} + /zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} /zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 2ac3c79b..f70928ab 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -3,7 +3,7 @@ "build": { "beforeBuildCommand": "npm run build", "beforeDevCommand": "npm run dev", - "devPath": "http://localhost:3000", + "devPath": "http://localhost:4321", "distDir": "../website/dist", "withGlobalTauri": true }, diff --git a/website/README.md b/website/README.md index 26ad430d..115d6d55 100644 --- a/website/README.md +++ b/website/README.md @@ -56,7 +56,7 @@ All commands are run from the root of the project, from a terminal: | Command | Action | | :--------------------- | :----------------------------------------------- | | `npm install` | Installs dependencies | -| `npm run dev` | Starts local dev server at `localhost:3000` | +| `npm run dev` | Starts local dev server at `localhost:4321` | | `npm run build` | Build your production site to `./dist/` | | `npm run preview` | Preview your build locally, before deploying | | `npm run astro ...` | Run CLI commands like `astro add`, `astro check` | diff --git a/website/package.json b/website/package.json index f766c420..f5354842 100644 --- a/website/package.json +++ b/website/package.json @@ -13,9 +13,9 @@ }, "dependencies": { "@algolia/client-search": "^4.17.0", - "@astrojs/mdx": "^0.19.0", - "@astrojs/react": "^2.1.1", - "@astrojs/tailwind": "^3.1.1", + "@astrojs/mdx": "^1.1.3", + "@astrojs/react": "^3.0.4", + "@astrojs/tailwind": "^5.0.2", "@docsearch/css": "^3.3.4", "@docsearch/react": "^3.3.4", "@headlessui/react": "^1.7.14", @@ -45,7 +45,7 @@ "@types/react": "^18.2.0", "@types/react-dom": "^18.2.1", "@uiw/codemirror-themes-all": "^4.19.16", - "astro": "^2.3.2", + "astro": "^3.4.2", "canvas": "^2.11.2", "claviature": "^0.1.0", "fraction.js": "^4.2.0", diff --git a/website/src/pages/learn/mini-notation.mdx b/website/src/pages/learn/mini-notation.mdx index d0844f45..9f92d428 100644 --- a/website/src/pages/learn/mini-notation.mdx +++ b/website/src/pages/learn/mini-notation.mdx @@ -13,7 +13,7 @@ Just like [Tidal Cycles](https://tidalcycles.org/), Strudel uses a so called "Mi ## Note This page just explains the entirety of the Mini-Notation syntax. -If you are just getting started with Strudel, you can learn the basics of the Mini-Notation in a more practical manner in the [workshop](http://localhost:3000/workshop/first-sounds). +If you are just getting started with Strudel, you can learn the basics of the Mini-Notation in a more practical manner in the [workshop](/workshop/first-sounds). After that, you can come back here if you want to understand every little detail. ## Example diff --git a/website/src/pages/learn/strudel-vs-tidal.mdx b/website/src/pages/learn/strudel-vs-tidal.mdx index 8f67e779..60f24149 100644 --- a/website/src/pages/learn/strudel-vs-tidal.mdx +++ b/website/src/pages/learn/strudel-vs-tidal.mdx @@ -106,7 +106,7 @@ You can find a [list of available effects here](./learn/effects). ### Sampler -Strudel's sampler supports [a subset](http://127.0.0.1:3000/learn/samples) of Superdirt's sampler. +Strudel's sampler supports [a subset](/learn/samples) of Superdirt's sampler. Also, samples are always loaded from a URL rather than from the disk, although [that might be possible in the future](https://github.com/tidalcycles/strudel/issues/118). ## Evaluation diff --git a/website/src/pages/technical-manual/docs.mdx b/website/src/pages/technical-manual/docs.mdx index 63e35ad5..aa18eab4 100644 --- a/website/src/pages/technical-manual/docs.mdx +++ b/website/src/pages/technical-manual/docs.mdx @@ -9,7 +9,7 @@ The docs page is built ontop of astro's [docs site](https://github.com/withastro ## Adding a new Docs Page -1. add a `.mdx` file in a path under `website/src/pages/`, e.g. [website/src/pages/learn/code.mdx](https://raw.githubusercontent.com/tidalcycles/strudel/main/website/src/pages/learn/code.mdx) will be available under https://strudel.cc/learn/code (or locally under `http://localhost:3000/learn/code`) +1. add a `.mdx` file in a path under `website/src/pages/`, e.g. [website/src/pages/learn/code.mdx](https://raw.githubusercontent.com/tidalcycles/strudel/main/website/src/pages/learn/code.mdx) will be available under https://strudel.cc/learn/code (or locally under `http://localhost:4321/learn/code`) 2. make sure to copy the top part of another existing docs page. Adjust the title accordingly 3. To add a link to the sidebar, add a new entry to `SIDEBAR` to [`config.ts`](https://github.com/tidalcycles/strudel/blob/main/website/src/config.ts) diff --git a/website/src/pages/workshop/getting-started.mdx b/website/src/pages/workshop/getting-started.mdx index 410c6da5..20c7be8c 100644 --- a/website/src/pages/workshop/getting-started.mdx +++ b/website/src/pages/workshop/getting-started.mdx @@ -10,7 +10,7 @@ import { MiniRepl } from '../../docs/MiniRepl'; Welcome to the Strudel documentation pages! -You've come to the right place if you want to learn how to make music with code. +You've come to the right place if you want to learn how to make music with code! ## What is Strudel? From 77686547eb8c3a13a939673bb0085662dc4f6745 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 2 Nov 2023 09:14:45 +0100 Subject: [PATCH 20/79] no double ! --- website/src/pages/workshop/getting-started.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/workshop/getting-started.mdx b/website/src/pages/workshop/getting-started.mdx index 20c7be8c..410c6da5 100644 --- a/website/src/pages/workshop/getting-started.mdx +++ b/website/src/pages/workshop/getting-started.mdx @@ -10,7 +10,7 @@ import { MiniRepl } from '../../docs/MiniRepl'; Welcome to the Strudel documentation pages! -You've come to the right place if you want to learn how to make music with code! +You've come to the right place if you want to learn how to make music with code. ## What is Strudel? From b3f8df17838cabb2a0c78bff529a2bdf03421341 Mon Sep 17 00:00:00 2001 From: Jade Rowland Date: Sat, 4 Nov 2023 20:20:25 -0400 Subject: [PATCH 21/79] initial commit --- packages/core/controls.mjs | 11 ++++ packages/superdough/phaser.mjs | 88 ++++++++++++++++++++++++++++++ packages/superdough/superdough.mjs | 10 ++++ packages/superdough/worklets.mjs | 33 +++++++++++ 4 files changed, 142 insertions(+) create mode 100644 packages/superdough/phaser.mjs diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs index 8841b4bc..a616ce06 100644 --- a/packages/core/controls.mjs +++ b/packages/core/controls.mjs @@ -380,6 +380,17 @@ const generic_params = [ * */ ['coarse'], + + /** + * fake-resampling for lowering the sample rate. Caution: This effect seems to only work in chromium based browsers + * + * @name phaser + * @param {number | Pattern} factor 1 for original 2 for half, 3 for a third and so on. + * @example + * s("bd sd,hh*4").coarse("<1 4 8 16 32>") + * + */ + ['phaser'], /** * choose the channel the pattern is sent to in superdirt * diff --git a/packages/superdough/phaser.mjs b/packages/superdough/phaser.mjs new file mode 100644 index 00000000..62771df3 --- /dev/null +++ b/packages/superdough/phaser.mjs @@ -0,0 +1,88 @@ +// credits to webdirt: https://github.com/dktr0/WebDirt/blob/41342e81d6ad694a2310d491fef7b7e8b0929efe/js-src/Graph.js#L597 +export var vowelFormant = { + 0: { freqs: [660, 1120, 2750, 3000, 3350], gains: [1, 0.5012, 0.0708, 0.0631, 0.0126], qs: [80, 90, 120, 130, 140] }, + 1: { freqs: [440, 1800, 2700, 3000, 3300], gains: [1, 0.1995, 0.1259, 0.1, 0.1], qs: [70, 80, 100, 120, 120] }, + 2: { freqs: [270, 1850, 2900, 3350, 3590], gains: [1, 0.0631, 0.0631, 0.0158, 0.0158], qs: [40, 90, 100, 120, 120] }, + 3: { freqs: [430, 820, 2700, 3000, 3300], gains: [1, 0.3162, 0.0501, 0.0794, 0.01995], qs: [40, 80, 100, 120, 120] }, + 4: { freqs: [370, 630, 2750, 3000, 3400], gains: [1, 0.1, 0.0708, 0.0316, 0.01995], qs: [40, 60, 100, 120, 120] }, +}; + +var createFilter = function (ctx, cutoff, Q) { + var lowpassFilter = ctx.createBiquadFilter(); + lowpassFilter.type = 'notch'; + lowpassFilter.gain.value = 1; + lowpassFilter.frequency.value = cutoff; + lowpassFilter.Q.value = Q; + return lowpassFilter; +}; + +// var createTriOscillator = function (freq) { +// var osc = ctx.createOscillator(); +// osc.type = 'triangle'; +// osc.frequency.value = freq * 1.0; +// osc.detune.value = 0; +// return osc; +// }; + +var createLFO = function (ctx, freq) { + var osc = ctx.createOscillator(); + osc.frequency.value = freq; + osc.type = 'sine'; + osc.start(); + return osc; +}; +var createLFOGain = function (ctx, gain) { + var gainNode = ctx.createGain(); + gainNode.gain.value = gain; + return gainNode; +}; +let lfo, lfoGain; +if (typeof GainNode !== 'undefined') { + class PhaserNode extends GainNode { + constructor(ac, speed) { + super(ac); + console.log('speed', speed); + + if (!vowelFormant[speed]) { + throw new Error('phaser: unknown phaser ' + speed); + } + const { gains, qs, freqs } = vowelFormant[speed]; + const makeupGain = ac.createGain(); + + // var sine = ac.createOscillator(), + // sineGain = ac.createGain(); + + // //set up our oscillator types + // sine.type = sine.SINE; + + // //set the amplitude of the modulation + // sineGain.gain.value = 100; + + // //connect the dots + // sine.connect(sineGain); + if (lfo == null) { + lfo = createLFO(ac, 0.25); + lfoGain = createLFOGain(ac, 4000); + + lfo.connect(lfoGain); + } + // sineGain.connect(saw.frequency); + for (let i = 0; i < 6; i++) { + const gain = ac.createGain(); + gain.gain.value = 0.5; + const filter = createFilter(ac, 1000 + i * 20, 1); + this.connect(filter); + lfoGain.connect(filter.detune); + filter.connect(gain); + gain.connect(makeupGain); + } + makeupGain.gain.value = 1; // how much makeup gain to add? + this.connect = (target) => makeupGain.connect(target); + return this; + } + } + + AudioContext.prototype.createPhaser = function (speed) { + return new PhaserNode(this, speed); + }; +} diff --git a/packages/superdough/superdough.mjs b/packages/superdough/superdough.mjs index e3033afe..3a215604 100644 --- a/packages/superdough/superdough.mjs +++ b/packages/superdough/superdough.mjs @@ -7,6 +7,7 @@ This program is free software: you can redistribute it and/or modify it under th import './feedbackdelay.mjs'; import './reverb.mjs'; import './vowel.mjs'; +import './phaser.mjs'; import { clamp } from './util.mjs'; import workletsUrl from './worklets.mjs?url'; import { createFilter, gainNode, getCompressor } from './helpers.mjs'; @@ -226,6 +227,9 @@ export const superdough = async (value, deadline, hapDuration) => { bpsustain = 1, bprelease = 0.01, bandq = 1, + + //phaser + phaser, // coarse, crush, @@ -361,10 +365,16 @@ export const superdough = async (value, deadline, hapDuration) => { chain.push(vowelFilter); } + if (phaser !== undefined) { + const phaserFX = ac.createPhaser(phaser); + chain.push(phaserFX); + } + // effects coarse !== undefined && chain.push(getWorklet(ac, 'coarse-processor', { coarse })); crush !== undefined && chain.push(getWorklet(ac, 'crush-processor', { crush })); shape !== undefined && chain.push(getWorklet(ac, 'shape-processor', { shape })); + // phaser !== undefined && chain.push(getWorklet(ac, 'phaser-processor', { phaser })); compressorThreshold !== undefined && chain.push( diff --git a/packages/superdough/worklets.mjs b/packages/superdough/worklets.mjs index 7bb43f87..cce52453 100644 --- a/packages/superdough/worklets.mjs +++ b/packages/superdough/worklets.mjs @@ -106,3 +106,36 @@ class ShapeProcessor extends AudioWorkletProcessor { } registerProcessor('shape-processor', ShapeProcessor); + +// class PhaseProcessor extends AudioWorkletProcessor { +// static get parameterDescriptors() { +// return [{ name: 'phaser', defaultValue: 0 }]; +// } + +// constructor() { +// super(); +// this.notStarted = true; +// } + +// process(inputs, outputs, parameters) { +// const input = inputs[0]; +// const output = outputs[0]; +// const phaser0 = parameters.phaser[0]; +// const phaser1 = phaser0 < 1 ? phaser0 : 1.0 - 4e-10; +// const phaser = (2.0 * phaser1) / (1.0 - phaser1); +// const blockSize = 128; +// const hasInput = !(input[0] === undefined); +// if (hasInput) { +// this.notStarted = false; +// for (let n = 0; n < blockSize; n++) { +// const value = ((1 + phaser) * input[0][n]) / (1 + phaser * Math.abs(input[0][n])); +// for (let o = 0; o < output.length; o++) { +// output[o][n] = value; +// } +// } +// } +// return this.notStarted || hasInput; +// } +// } + +// registerProcessor('phaser-processor', PhaseProcessor); From 8c5837e78a7bcd8c13663552f17dbc07578637be Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 5 Nov 2023 12:11:17 +0100 Subject: [PATCH 22/79] add xfade + docs --- packages/core/pattern.mjs | 26 ++++++++++++++++++++++++++ website/src/pages/learn/effects.mdx | 4 ++++ 2 files changed, 30 insertions(+) diff --git a/packages/core/pattern.mjs b/packages/core/pattern.mjs index dcf5da1b..370776f3 100644 --- a/packages/core/pattern.mjs +++ b/packages/core/pattern.mjs @@ -2392,3 +2392,29 @@ export const ref = (accessor) => pure(1) .withValue(() => reify(accessor())) .innerJoin(); + +let fadeGain = (p) => (p < 0.5 ? 1 : 1 - (p - 0.5) / 0.5); + +/** + * Cross-fades between left and right from 0 to 1: + * - 0 = (full left, no right) + * - .5 = (both equal) + * - 1 = (no left, full right) + * + * @name xfade + * @example + * xfade(s("bd*2"), "<0 .25 .5 .75 1>", s("hh*8")) + */ +export let xfade = (a, pos, b) => { + pos = reify(pos); + a = reify(a); + b = reify(b); + let gaina = pos.fmap((v) => ({ gain: fadeGain(v) })); + let gainb = pos.fmap((v) => ({ gain: fadeGain(1 - v) })); + return stack(a.mul(gaina), b.mul(gainb)); +}; + +// the prototype version is actually flipped so left/right makes sense +Pattern.prototype.xfade = function (pos, b) { + return xfade(this, pos, b); +}; diff --git a/website/src/pages/learn/effects.mdx b/website/src/pages/learn/effects.mdx index 30804240..b1323a8e 100644 --- a/website/src/pages/learn/effects.mdx +++ b/website/src/pages/learn/effects.mdx @@ -156,6 +156,10 @@ There is one filter envelope for each filter type and thus one set of envelope f +## xfade + + + # Panning ## jux From d7752961b808ce11ec3cfc3de07844c37bfea476 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 5 Nov 2023 12:12:25 +0100 Subject: [PATCH 23/79] snapshot --- test/__snapshots__/examples.test.mjs.snap | 45 +++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/test/__snapshots__/examples.test.mjs.snap b/test/__snapshots__/examples.test.mjs.snap index 0963638f..e920d931 100644 --- a/test/__snapshots__/examples.test.mjs.snap +++ b/test/__snapshots__/examples.test.mjs.snap @@ -5235,6 +5235,51 @@ exports[`runs examples > example "withValue" example index 0 1`] = ` ] `; +exports[`runs examples > example "xfade" example index 0 1`] = ` +[ + "[ 0/1 → 1/8 | s:hh gain:0 ]", + "[ 0/1 → 1/2 | s:bd gain:1 ]", + "[ 1/8 → 1/4 | s:hh gain:0 ]", + "[ 1/4 → 3/8 | s:hh gain:0 ]", + "[ 3/8 → 1/2 | s:hh gain:0 ]", + "[ 1/2 → 5/8 | s:hh gain:0 ]", + "[ 1/2 → 1/1 | s:bd gain:1 ]", + "[ 5/8 → 3/4 | s:hh gain:0 ]", + "[ 3/4 → 7/8 | s:hh gain:0 ]", + "[ 7/8 → 1/1 | s:hh gain:0 ]", + "[ 1/1 → 9/8 | s:hh gain:0.5 ]", + "[ 1/1 → 3/2 | s:bd gain:1 ]", + "[ 9/8 → 5/4 | s:hh gain:0.5 ]", + "[ 5/4 → 11/8 | s:hh gain:0.5 ]", + "[ 11/8 → 3/2 | s:hh gain:0.5 ]", + "[ 3/2 → 13/8 | s:hh gain:0.5 ]", + "[ 3/2 → 2/1 | s:bd gain:1 ]", + "[ 13/8 → 7/4 | s:hh gain:0.5 ]", + "[ 7/4 → 15/8 | s:hh gain:0.5 ]", + "[ 15/8 → 2/1 | s:hh gain:0.5 ]", + "[ 2/1 → 17/8 | s:hh gain:1 ]", + "[ 2/1 → 5/2 | s:bd gain:1 ]", + "[ 17/8 → 9/4 | s:hh gain:1 ]", + "[ 9/4 → 19/8 | s:hh gain:1 ]", + "[ 19/8 → 5/2 | s:hh gain:1 ]", + "[ 5/2 → 21/8 | s:hh gain:1 ]", + "[ 5/2 → 3/1 | s:bd gain:1 ]", + "[ 21/8 → 11/4 | s:hh gain:1 ]", + "[ 11/4 → 23/8 | s:hh gain:1 ]", + "[ 23/8 → 3/1 | s:hh gain:1 ]", + "[ 3/1 → 25/8 | s:hh gain:1 ]", + "[ 3/1 → 7/2 | s:bd gain:0.5 ]", + "[ 25/8 → 13/4 | s:hh gain:1 ]", + "[ 13/4 → 27/8 | s:hh gain:1 ]", + "[ 27/8 → 7/2 | s:hh gain:1 ]", + "[ 7/2 → 29/8 | s:hh gain:1 ]", + "[ 7/2 → 4/1 | s:bd gain:0.5 ]", + "[ 29/8 → 15/4 | s:hh gain:1 ]", + "[ 15/4 → 31/8 | s:hh gain:1 ]", + "[ 31/8 → 4/1 | s:hh gain:1 ]", +] +`; + exports[`runs examples > example "zoom" example index 0 1`] = ` [ "[ 0/1 → 1/6 | s:hh ]", From 7ad0ec1600c5ef6fa7991a7a8116c19f6c03e482 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 5 Nov 2023 12:35:49 +0100 Subject: [PATCH 24/79] fix: namespace mini-repl styles --- website/src/docs/MiniRepl.css | 14 +++++++------- website/src/docs/MiniRepl.jsx | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/docs/MiniRepl.css b/website/src/docs/MiniRepl.css index 84927a88..c46110b7 100644 --- a/website/src/docs/MiniRepl.css +++ b/website/src/docs/MiniRepl.css @@ -1,26 +1,26 @@ -.cm-activeLine, -.cm-activeLineGutter { +.mini-repl .cm-activeLine, +.mini-repl .cm-activeLineGutter { background-color: transparent !important; } -.cm-theme { +.mini-repl .cm-theme { background-color: var(--background); border: 1px solid var(--lineHighlight); padding: 2px; } -.cm-scroller { +.mini-repl .cm-scroller { font-family: inherit !important; } -.cm-gutters { +.mini-repl .cm-gutters { display: none !important; } -.cm-cursorLayer { +.mini-repl .cm-cursorLayer { animation-name: inherit !important; } -.cm-cursor { +.mini-repl .cm-cursor { border-left: 2px solid currentcolor !important; } diff --git a/website/src/docs/MiniRepl.jsx b/website/src/docs/MiniRepl.jsx index 251410c5..4b2fcfa8 100644 --- a/website/src/docs/MiniRepl.jsx +++ b/website/src/docs/MiniRepl.jsx @@ -51,7 +51,7 @@ export function MiniRepl({ .catch((err) => console.error(err)); }, []); return Repl ? ( -
+
Date: Sun, 5 Nov 2023 13:00:54 +0100 Subject: [PATCH 25/79] Implement optional hover tooltip with function documentation --- .../react/src/components/Autocomplete.jsx | 1 - packages/react/src/components/CodeMirror6.jsx | 8 ++- packages/react/src/components/Tooltip.jsx | 69 +++++++++++++++++++ packages/react/src/components/style.css | 4 ++ website/src/repl/Footer.jsx | 6 ++ website/src/repl/Repl.jsx | 2 + website/src/settings.mjs | 2 + 7 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 packages/react/src/components/Tooltip.jsx diff --git a/packages/react/src/components/Autocomplete.jsx b/packages/react/src/components/Autocomplete.jsx index 7ec81d2d..677baa6e 100644 --- a/packages/react/src/components/Autocomplete.jsx +++ b/packages/react/src/components/Autocomplete.jsx @@ -26,7 +26,6 @@ export function Autocomplete({ doc }) {
 {
-                console.log('ola!');
                 navigator.clipboard.writeText(example);
                 e.stopPropagation();
               }}
diff --git a/packages/react/src/components/CodeMirror6.jsx b/packages/react/src/components/CodeMirror6.jsx
index 63d4d5a1..667cd7e6 100644
--- a/packages/react/src/components/CodeMirror6.jsx
+++ b/packages/react/src/components/CodeMirror6.jsx
@@ -9,6 +9,7 @@ import _CodeMirror from '@uiw/react-codemirror';
 import React, { useCallback, useMemo } from 'react';
 import strudelTheme from '../themes/strudel-theme';
 import { strudelAutocomplete } from './Autocomplete';
+import { strudelTooltip } from './Tooltip';
 import {
   highlightExtension,
   flashField,
@@ -33,6 +34,7 @@ export default function CodeMirror({
   keybindings,
   isLineNumbersDisplayed,
   isAutoCompletionEnabled,
+  isTooltipEnabled,
   isLineWrappingEnabled,
   fontSize = 18,
   fontFamily = 'monospace',
@@ -94,6 +96,10 @@ export default function CodeMirror({
       _extensions.push(autocompletion({ override: [] }));
     }
 
+    if (isTooltipEnabled) {
+      _extensions.push(strudelTooltip);
+    }
+
     _extensions.push([keymap.of({})]);
 
     if (isLineWrappingEnabled) {
@@ -101,7 +107,7 @@ export default function CodeMirror({
     }
 
     return _extensions;
-  }, [keybindings, isAutoCompletionEnabled, isLineWrappingEnabled]);
+  }, [keybindings, isAutoCompletionEnabled, isTooltipEnabled, isLineWrappingEnabled]);
 
   const basicSetup = useMemo(() => ({ lineNumbers: isLineNumbersDisplayed }), [isLineNumbersDisplayed]);
 
diff --git a/packages/react/src/components/Tooltip.jsx b/packages/react/src/components/Tooltip.jsx
new file mode 100644
index 00000000..a443c123
--- /dev/null
+++ b/packages/react/src/components/Tooltip.jsx
@@ -0,0 +1,69 @@
+import { createRoot } from 'react-dom/client';
+import { hoverTooltip } from '@codemirror/view';
+import jsdoc from '../../../../doc.json';
+import { Autocomplete } from './Autocomplete';
+
+const getDocLabel = (doc) => doc.name || doc.longname;
+
+let ctrlDown = false;
+
+// Record Control key event to trigger or block the tooltip depending on the state
+window.addEventListener(
+  'keyup',
+  function (e) {
+    if (e.key == 'Control') {
+      ctrlDown = false;
+    }
+  },
+  true,
+);
+
+window.addEventListener(
+  'keydown',
+  function (e) {
+    if (e.key == 'Control') {
+      ctrlDown = true;
+    }
+  },
+  true,
+);
+
+export const strudelTooltip = hoverTooltip(
+  (view, pos, side) => {
+    // Word selection from CodeMirror Hover Tooltip example https://codemirror.net/examples/tooltip/#hover-tooltips
+    let { from, to, text } = view.state.doc.lineAt(pos);
+    let start = pos,
+      end = pos;
+    while (start > from && /\w/.test(text[start - from - 1])) {
+      start--;
+    }
+    while (end < to && /\w/.test(text[end - from])) {
+      end++;
+    }
+    if ((start == pos && side < 0) || (end == pos && side > 0)) {
+      return null;
+    }
+    let word = text.slice(start - from, end - from);
+    // Get entry from Strudel documentation
+    let entry = jsdoc.docs.filter((doc) => getDocLabel(doc) === word)[0];
+    if (!entry) {
+      return null;
+    }
+    if (!ctrlDown) {
+      return null;
+    }
+    return {
+      pos: start,
+      end,
+      above: false,
+      arrow: true,
+      create(view) {
+        let dom = document.createElement('div');
+        dom.className = 'strudel-tooltip';
+        createRoot(dom).render();
+        return { dom };
+      },
+    };
+  },
+  { hoverTime: 10 },
+);
diff --git a/packages/react/src/components/style.css b/packages/react/src/components/style.css
index d61c6619..6336bba3 100644
--- a/packages/react/src/components/style.css
+++ b/packages/react/src/components/style.css
@@ -28,3 +28,7 @@
 footer {
   z-index: 0 !important;
 }
+
+.strudel-tooltip {
+  padding: 5px;
+}
diff --git a/website/src/repl/Footer.jsx b/website/src/repl/Footer.jsx
index 9fb783a4..62dcbcdf 100644
--- a/website/src/repl/Footer.jsx
+++ b/website/src/repl/Footer.jsx
@@ -385,6 +385,7 @@ function SettingsTab({ scheduler }) {
     keybindings,
     isLineNumbersDisplayed,
     isAutoCompletionEnabled,
+    isTooltipEnabled,
     isLineWrappingEnabled,
     fontSize,
     fontFamily,
@@ -457,6 +458,11 @@ function SettingsTab({ scheduler }) {
           onChange={(cbEvent) => settingsMap.setKey('isAutoCompletionEnabled', cbEvent.target.checked)}
           value={isAutoCompletionEnabled}
         />
+         settingsMap.setKey('isTooltipEnabled', cbEvent.target.checked)}
+          value={isTooltipEnabled}
+        />
          settingsMap.setKey('isLineWrappingEnabled', cbEvent.target.checked)}
diff --git a/website/src/repl/Repl.jsx b/website/src/repl/Repl.jsx
index d9eb7001..41d4a35f 100644
--- a/website/src/repl/Repl.jsx
+++ b/website/src/repl/Repl.jsx
@@ -126,6 +126,7 @@ export function Repl({ embedded = false }) {
     fontFamily,
     isLineNumbersDisplayed,
     isAutoCompletionEnabled,
+    isTooltipEnabled,
     isLineWrappingEnabled,
     panelPosition,
     isZen,
@@ -335,6 +336,7 @@ export function Repl({ embedded = false }) {
               keybindings={keybindings}
               isLineNumbersDisplayed={isLineNumbersDisplayed}
               isAutoCompletionEnabled={isAutoCompletionEnabled}
+              isTooltipEnabled={isTooltipEnabled}
               isLineWrappingEnabled={isLineWrappingEnabled}
               fontSize={fontSize}
               fontFamily={fontFamily}
diff --git a/website/src/settings.mjs b/website/src/settings.mjs
index 5608b894..ab58494c 100644
--- a/website/src/settings.mjs
+++ b/website/src/settings.mjs
@@ -7,6 +7,7 @@ export const defaultSettings = {
   keybindings: 'codemirror',
   isLineNumbersDisplayed: true,
   isAutoCompletionEnabled: false,
+  isTooltipEnabled: false,
   isLineWrappingEnabled: false,
   theme: 'strudelTheme',
   fontFamily: 'monospace',
@@ -26,6 +27,7 @@ export function useSettings() {
     isZen: [true, 'true'].includes(state.isZen) ? true : false,
     isLineNumbersDisplayed: [true, 'true'].includes(state.isLineNumbersDisplayed) ? true : false,
     isAutoCompletionEnabled: [true, 'true'].includes(state.isAutoCompletionEnabled) ? true : false,
+    isTooltipEnabled: [true, 'true'].includes(state.isTooltipEnabled) ? true : false,
     isLineWrappingEnabled: [true, 'true'].includes(state.isLineWrappingEnabled) ? true : false,
     fontSize: Number(state.fontSize),
     panelPosition: state.activeFooter !== '' ? state.panelPosition : 'bottom',

From 624e540cb4a6b85cc3f8464bc96dcb1b40ae8ba1 Mon Sep 17 00:00:00 2001
From: "Alexandre G.-Raymond" 
Date: Sun, 5 Nov 2023 16:23:00 +0100
Subject: [PATCH 26/79] Add pianoroll function documentation

---
 packages/core/pianoroll.mjs               | 34 +++++++++++++++++++++++
 test/__snapshots__/examples.test.mjs.snap | 33 ++++++++++++++++++++++
 2 files changed, 67 insertions(+)

diff --git a/packages/core/pianoroll.mjs b/packages/core/pianoroll.mjs
index f3d2c38a..2ea5727b 100644
--- a/packages/core/pianoroll.mjs
+++ b/packages/core/pianoroll.mjs
@@ -56,6 +56,40 @@ Pattern.prototype.pianoroll = function (options = {}) {
 
 // this function allows drawing a pianoroll without ties to Pattern.prototype
 // it will probably replace the above in the future
+
+/**
+ * Displays a midi-style piano roll
+ *
+ * @name pianoroll
+ * @param {Object} options Object containing all the optional following parameters as key value pairs:
+ * @param {integer} cycles defaults to 4 - number of cycles to be displayed at the same time
+ * @param {number} playhead 0 to 1, defaults to 0.5 - location of the active notes on the time axis
+ * @param {integer} vertical 0 (default) or 1 - displays the roll vertically
+ * @param {boolean} labels false (default) or true - displays labels on individual notes (see the label function)
+ * @param {integer} flipTime 0 (default) or 1 - reverse the direction of the roll
+ * @param {integer} flipValues 0 (default) or 1 - reverse the relative location of notes on the value axis
+ * @param {number} overscan 1 (default) - lookup X cycles outside of the cycles window to display notes in advance
+ * @param {boolean} hideNegative false (default) or true - hide notes with negative time (before starting playing the pattern)
+ * @param {integer} smear 0 (default) or 1 - notes leave a solid trace
+ * @param {integer} fold 0 (default) or 1 - notes takes the full value axis width
+ * @param {string} active hexadecimal or CSS color (defaults to #FFCA28) - color of the active notes
+ * @param {string} inactive hexadecimal or CSS color (defaults to #7491D2) - color of the inactive notes
+ * @param {string} background hexadecimal or CSS color (defaults to transparent) - color of the background
+ * @param {string} playheadColor hexadecimal or CSS color (defaults to transparent) - color of the line representing the play head
+ * @param {integer} fill 1 (default) or 0 - notes are filled with color (otherwise only the label is displayed)
+ * @param {boolean} fillActive: false (default) or true - active notes are filled with color
+ * @param {integer} stroke 0 (default) or 1 - notes are shown with colored borders
+ * @param {boolean} strokeActive: false (default) or true - active notes are shown with colored borders
+ * @param {integer} hideInactive 0 (default) or 1 - only active notes are shown
+ * @param {integer} colorizeInactive 1 (default) or 0 - use note color for inactive notes
+ * @param {string} fontFamily: defaults to 'monospace' - define the font used by notes labels
+ * @param {integer} minMidi integer, defaults to 10 - minimum note value to display on the value axis
+ * @param {integer} maxMidi integer, defaults to 90 - maximum note value to display on the value axis
+ * @param {integer} autorange 0 (default) or 1 - automatically calculate the minMidi and maxMidi parameters
+ *
+ * @example
+ * note("C2 A2 G2").euclid(5,8).s('piano').clip(1).color('salmon').pianoroll({vertical:1, labels:1})
+ */
 export function pianoroll({
   time,
   haps,
diff --git a/test/__snapshots__/examples.test.mjs.snap b/test/__snapshots__/examples.test.mjs.snap
index 0963638f..5d485210 100644
--- a/test/__snapshots__/examples.test.mjs.snap
+++ b/test/__snapshots__/examples.test.mjs.snap
@@ -3297,6 +3297,39 @@ exports[`runs examples > example "perlin" example index 0 1`] = `
 ]
 `;
 
+exports[`runs examples > example "pianoroll" example index 0 1`] = `
+[
+  "[ 0/1 → 1/8 | note:C2 s:piano clip:1 ]",
+  "[ (1/4 → 1/3) ⇝ 3/8 | note:C2 s:piano clip:1 ]",
+  "[ 1/4 ⇜ (1/3 → 3/8) | note:A2 s:piano clip:1 ]",
+  "[ 3/8 → 1/2 | note:A2 s:piano clip:1 ]",
+  "[ (5/8 → 2/3) ⇝ 3/4 | note:A2 s:piano clip:1 ]",
+  "[ 5/8 ⇜ (2/3 → 3/4) | note:G2 s:piano clip:1 ]",
+  "[ 3/4 → 7/8 | note:G2 s:piano clip:1 ]",
+  "[ 1/1 → 9/8 | note:C2 s:piano clip:1 ]",
+  "[ (5/4 → 4/3) ⇝ 11/8 | note:C2 s:piano clip:1 ]",
+  "[ 5/4 ⇜ (4/3 → 11/8) | note:A2 s:piano clip:1 ]",
+  "[ 11/8 → 3/2 | note:A2 s:piano clip:1 ]",
+  "[ (13/8 → 5/3) ⇝ 7/4 | note:A2 s:piano clip:1 ]",
+  "[ 13/8 ⇜ (5/3 → 7/4) | note:G2 s:piano clip:1 ]",
+  "[ 7/4 → 15/8 | note:G2 s:piano clip:1 ]",
+  "[ 2/1 → 17/8 | note:C2 s:piano clip:1 ]",
+  "[ (9/4 → 7/3) ⇝ 19/8 | note:C2 s:piano clip:1 ]",
+  "[ 9/4 ⇜ (7/3 → 19/8) | note:A2 s:piano clip:1 ]",
+  "[ 19/8 → 5/2 | note:A2 s:piano clip:1 ]",
+  "[ (21/8 → 8/3) ⇝ 11/4 | note:A2 s:piano clip:1 ]",
+  "[ 21/8 ⇜ (8/3 → 11/4) | note:G2 s:piano clip:1 ]",
+  "[ 11/4 → 23/8 | note:G2 s:piano clip:1 ]",
+  "[ 3/1 → 25/8 | note:C2 s:piano clip:1 ]",
+  "[ (13/4 → 10/3) ⇝ 27/8 | note:C2 s:piano clip:1 ]",
+  "[ 13/4 ⇜ (10/3 → 27/8) | note:A2 s:piano clip:1 ]",
+  "[ 27/8 → 7/2 | note:A2 s:piano clip:1 ]",
+  "[ (29/8 → 11/3) ⇝ 15/4 | note:A2 s:piano clip:1 ]",
+  "[ 29/8 ⇜ (11/3 → 15/4) | note:G2 s:piano clip:1 ]",
+  "[ 15/4 → 31/8 | note:G2 s:piano clip:1 ]",
+]
+`;
+
 exports[`runs examples > example "pick" example index 0 1`] = `
 [
   "[ 0/1 → 1/2 | note:g ]",

From 0d06840a1bc496b9c50c280ec88340193854d73c Mon Sep 17 00:00:00 2001
From: "Alexandre G.-Raymond" 
Date: Sun, 5 Nov 2023 16:23:21 +0100
Subject: [PATCH 27/79] Add label function documentation

---
 packages/core/controls.mjs | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs
index 1ca49bb6..866be4fb 100644
--- a/packages/core/controls.mjs
+++ b/packages/core/controls.mjs
@@ -867,7 +867,12 @@ const generic_params = [
    *
    */
   ['lsize'],
-  // label for pianoroll
+  /**
+   * Sets the displayed text for an event on the pianoroll
+   *
+   * @name label
+   * @param {string} label text to display
+   */
   ['activeLabel'],
   [['label', 'activeLabel']],
   // ['lfo'],

From f045fb44de8dfc3b0e23d131d3fe33f69ef35114 Mon Sep 17 00:00:00 2001
From: "Alexandre G.-Raymond" 
Date: Sun, 5 Nov 2023 16:23:36 +0100
Subject: [PATCH 28/79] Add color function documentation

---
 packages/core/pattern.mjs | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/packages/core/pattern.mjs b/packages/core/pattern.mjs
index dcf5da1b..f09b89b9 100644
--- a/packages/core/pattern.mjs
+++ b/packages/core/pattern.mjs
@@ -2191,6 +2191,9 @@ export const duration = register('duration', function (value, pat) {
 
 /**
  * Sets the color of the hap in visualizations like pianoroll or highlighting.
+ * @name color
+ * @synonyms colour
+ * @param {string} color Hexadecimal or CSS color name
  */
 // TODO: move this to controls https://github.com/tidalcycles/strudel/issues/288
 export const { color, colour } = register(['color', 'colour'], function (color, pat) {

From 8fa7bf795a6760a23defb33ee69c3fd824807298 Mon Sep 17 00:00:00 2001
From: "Alexandre G.-Raymond" 
Date: Sun, 5 Nov 2023 16:25:10 +0100
Subject: [PATCH 29/79] Fix pianoroll documentation

---
 packages/core/pianoroll.mjs | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/packages/core/pianoroll.mjs b/packages/core/pianoroll.mjs
index 2ea5727b..60cab07c 100644
--- a/packages/core/pianoroll.mjs
+++ b/packages/core/pianoroll.mjs
@@ -77,12 +77,12 @@ Pattern.prototype.pianoroll = function (options = {}) {
  * @param {string} background hexadecimal or CSS color (defaults to transparent) - color of the background
  * @param {string} playheadColor hexadecimal or CSS color (defaults to transparent) - color of the line representing the play head
  * @param {integer} fill 1 (default) or 0 - notes are filled with color (otherwise only the label is displayed)
- * @param {boolean} fillActive: false (default) or true - active notes are filled with color
+ * @param {boolean} fillActive false (default) or true - active notes are filled with color
  * @param {integer} stroke 0 (default) or 1 - notes are shown with colored borders
- * @param {boolean} strokeActive: false (default) or true - active notes are shown with colored borders
+ * @param {boolean} strokeActive false (default) or true - active notes are shown with colored borders
  * @param {integer} hideInactive 0 (default) or 1 - only active notes are shown
  * @param {integer} colorizeInactive 1 (default) or 0 - use note color for inactive notes
- * @param {string} fontFamily: defaults to 'monospace' - define the font used by notes labels
+ * @param {string} fontFamily defaults to 'monospace' - define the font used by notes labels
  * @param {integer} minMidi integer, defaults to 10 - minimum note value to display on the value axis
  * @param {integer} maxMidi integer, defaults to 90 - maximum note value to display on the value axis
  * @param {integer} autorange 0 (default) or 1 - automatically calculate the minMidi and maxMidi parameters

From e9265eff35a02a90c4bfe526b2a94a4c0e1fc66c Mon Sep 17 00:00:00 2001
From: "Alexandre G.-Raymond" 
Date: Sun, 5 Nov 2023 16:40:46 +0100
Subject: [PATCH 30/79] Add function params in reference tab

---
 website/src/repl/Reference.jsx | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/website/src/repl/Reference.jsx b/website/src/repl/Reference.jsx
index de52982e..00116623 100644
--- a/website/src/repl/Reference.jsx
+++ b/website/src/repl/Reference.jsx
@@ -3,6 +3,12 @@ const visibleFunctions = jsdocJson.docs
   .filter(({ name, description }) => name && !name.startsWith('_') && !!description)
   .sort((a, b) => /* a.meta.filename.localeCompare(b.meta.filename) +  */ a.name.localeCompare(b.name));
 
+const getInnerText = (html) => {
+  var div = document.createElement('div');
+  div.innerHTML = html;
+  return div.textContent || div.innerText || '';
+};
+
 export function Reference() {
   return (
     
@@ -24,8 +30,14 @@ export function Reference() {

{entry.name}

{/* {entry.meta.filename} */} -

+
    + {entry.params?.map(({ name, type, description }, i) => ( +
  • + {name} : {type.names?.join(' | ')} {description ? <> - {getInnerText(description)} : ''} +
  • + ))} +
{entry.examples?.map((example, j) => (
{example}
))} From 8fe4dca4c21a7c8544a979a87807531a9b77d30f Mon Sep 17 00:00:00 2001 From: "Alexandre G.-Raymond" Date: Sun, 5 Nov 2023 18:07:42 +0100 Subject: [PATCH 31/79] Update pianoroll documentation --- packages/core/pianoroll.mjs | 48 ++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/packages/core/pianoroll.mjs b/packages/core/pianoroll.mjs index 60cab07c..c10460a4 100644 --- a/packages/core/pianoroll.mjs +++ b/packages/core/pianoroll.mjs @@ -62,30 +62,30 @@ Pattern.prototype.pianoroll = function (options = {}) { * * @name pianoroll * @param {Object} options Object containing all the optional following parameters as key value pairs: - * @param {integer} cycles defaults to 4 - number of cycles to be displayed at the same time - * @param {number} playhead 0 to 1, defaults to 0.5 - location of the active notes on the time axis - * @param {integer} vertical 0 (default) or 1 - displays the roll vertically - * @param {boolean} labels false (default) or true - displays labels on individual notes (see the label function) - * @param {integer} flipTime 0 (default) or 1 - reverse the direction of the roll - * @param {integer} flipValues 0 (default) or 1 - reverse the relative location of notes on the value axis - * @param {number} overscan 1 (default) - lookup X cycles outside of the cycles window to display notes in advance - * @param {boolean} hideNegative false (default) or true - hide notes with negative time (before starting playing the pattern) - * @param {integer} smear 0 (default) or 1 - notes leave a solid trace - * @param {integer} fold 0 (default) or 1 - notes takes the full value axis width - * @param {string} active hexadecimal or CSS color (defaults to #FFCA28) - color of the active notes - * @param {string} inactive hexadecimal or CSS color (defaults to #7491D2) - color of the inactive notes - * @param {string} background hexadecimal or CSS color (defaults to transparent) - color of the background - * @param {string} playheadColor hexadecimal or CSS color (defaults to transparent) - color of the line representing the play head - * @param {integer} fill 1 (default) or 0 - notes are filled with color (otherwise only the label is displayed) - * @param {boolean} fillActive false (default) or true - active notes are filled with color - * @param {integer} stroke 0 (default) or 1 - notes are shown with colored borders - * @param {boolean} strokeActive false (default) or true - active notes are shown with colored borders - * @param {integer} hideInactive 0 (default) or 1 - only active notes are shown - * @param {integer} colorizeInactive 1 (default) or 0 - use note color for inactive notes - * @param {string} fontFamily defaults to 'monospace' - define the font used by notes labels - * @param {integer} minMidi integer, defaults to 10 - minimum note value to display on the value axis - * @param {integer} maxMidi integer, defaults to 90 - maximum note value to display on the value axis - * @param {integer} autorange 0 (default) or 1 - automatically calculate the minMidi and maxMidi parameters + * @param {integer} cycles number of cycles to be displayed at the same time - defaults to 4 + * @param {number} playhead location of the active notes on the time axis - 0 to 1, defaults to 0.5 + * @param {boolean} vertical displays the roll vertically - 0 by default + * @param {boolean} labels displays labels on individual notes (see the label function) - 0 by default + * @param {boolean} flipTime reverse the direction of the roll - 0 by default + * @param {boolean} flipValues reverse the relative location of notes on the value axis - 0 by default + * @param {number} overscan lookup X cycles outside of the cycles window to display notes in advance - 1 by default + * @param {boolean} hideNegative hide notes with negative time (before starting playing the pattern) - 0 by default + * @param {boolean} smear notes leave a solid trace - 0 by default + * @param {boolean} fold notes takes the full value axis width - 0 by default + * @param {string} active hexadecimal or CSS color of the active notes - defaults to #FFCA28 + * @param {string} inactive hexadecimal or CSS color of the inactive notes - defaults to #7491D2 + * @param {string} background hexadecimal or CSS color of the background - defaults to transparent + * @param {string} playheadColor hexadecimal or CSS color of the line representing the play head - defaults to white + * @param {boolean} fill notes are filled with color (otherwise only the label is displayed) - 0 by default + * @param {boolean} fillActive active notes are filled with color - 0 by default + * @param {boolean} stroke notes are shown with colored borders - 0 by default + * @param {boolean} strokeActive active notes are shown with colored borders - 0 by default + * @param {boolean} hideInactive only active notes are shown - 0 by default + * @param {boolean} colorizeInactive use note color for inactive notes - 1 by default + * @param {string} fontFamily define the font used by notes labels - defaults to 'monospace' + * @param {integer} minMidi minimum note value to display on the value axis - defaults to 10 + * @param {integer} maxMidi maximum note value to display on the value axis - defaults to 90 + * @param {boolean} autorange automatically calculate the minMidi and maxMidi parameters - 0 by default * * @example * note("C2 A2 G2").euclid(5,8).s('piano').clip(1).color('salmon').pianoroll({vertical:1, labels:1}) From a9efda3bc36619ec005aab5f9a7bb02b2f33e4f9 Mon Sep 17 00:00:00 2001 From: Jade Rowland Date: Sun, 5 Nov 2023 15:40:02 -0500 Subject: [PATCH 32/79] tweaking to make it sound good --- packages/superdough/phaser.mjs | 78 ++++++++++-------------------- packages/superdough/superdough.mjs | 2 +- 2 files changed, 27 insertions(+), 53 deletions(-) diff --git a/packages/superdough/phaser.mjs b/packages/superdough/phaser.mjs index 62771df3..bdb64c40 100644 --- a/packages/superdough/phaser.mjs +++ b/packages/superdough/phaser.mjs @@ -1,14 +1,5 @@ -// credits to webdirt: https://github.com/dktr0/WebDirt/blob/41342e81d6ad694a2310d491fef7b7e8b0929efe/js-src/Graph.js#L597 -export var vowelFormant = { - 0: { freqs: [660, 1120, 2750, 3000, 3350], gains: [1, 0.5012, 0.0708, 0.0631, 0.0126], qs: [80, 90, 120, 130, 140] }, - 1: { freqs: [440, 1800, 2700, 3000, 3300], gains: [1, 0.1995, 0.1259, 0.1, 0.1], qs: [70, 80, 100, 120, 120] }, - 2: { freqs: [270, 1850, 2900, 3350, 3590], gains: [1, 0.0631, 0.0631, 0.0158, 0.0158], qs: [40, 90, 100, 120, 120] }, - 3: { freqs: [430, 820, 2700, 3000, 3300], gains: [1, 0.3162, 0.0501, 0.0794, 0.01995], qs: [40, 80, 100, 120, 120] }, - 4: { freqs: [370, 630, 2750, 3000, 3400], gains: [1, 0.1, 0.0708, 0.0316, 0.01995], qs: [40, 60, 100, 120, 120] }, -}; - -var createFilter = function (ctx, cutoff, Q) { - var lowpassFilter = ctx.createBiquadFilter(); +const createFilter = (ctx, cutoff, Q) => { + const lowpassFilter = ctx.createBiquadFilter(); lowpassFilter.type = 'notch'; lowpassFilter.gain.value = 1; lowpassFilter.frequency.value = cutoff; @@ -16,65 +7,48 @@ var createFilter = function (ctx, cutoff, Q) { return lowpassFilter; }; -// var createTriOscillator = function (freq) { -// var osc = ctx.createOscillator(); -// osc.type = 'triangle'; -// osc.frequency.value = freq * 1.0; -// osc.detune.value = 0; -// return osc; -// }; - -var createLFO = function (ctx, freq) { - var osc = ctx.createOscillator(); +const createOscillator = (ctx, freq) => { + const osc = ctx.createOscillator(); osc.frequency.value = freq; osc.type = 'sine'; - osc.start(); return osc; }; -var createLFOGain = function (ctx, gain) { - var gainNode = ctx.createGain(); +const createGain = (ctx, gain) => { + const gainNode = ctx.createGain(); gainNode.gain.value = gain; return gainNode; }; -let lfo, lfoGain; + +const createLFO = (ctx, freq, gain) => { + const osc = createOscillator(ctx, freq); + const gainNode = createGain(ctx, gain); + osc.start(); + osc.connect(gainNode); + return gainNode; +}; if (typeof GainNode !== 'undefined') { class PhaserNode extends GainNode { - constructor(ac, speed) { + constructor(ac, speed, cps) { super(ac); - console.log('speed', speed); + this.lfo; + console.log(cps); - if (!vowelFormant[speed]) { - throw new Error('phaser: unknown phaser ' + speed); - } - const { gains, qs, freqs } = vowelFormant[speed]; const makeupGain = ac.createGain(); - // var sine = ac.createOscillator(), - // sineGain = ac.createGain(); - - // //set up our oscillator types - // sine.type = sine.SINE; - - // //set the amplitude of the modulation - // sineGain.gain.value = 100; - - // //connect the dots - // sine.connect(sineGain); - if (lfo == null) { - lfo = createLFO(ac, 0.25); - lfoGain = createLFOGain(ac, 4000); - - lfo.connect(lfoGain); + if (this.lfo == null) { + this.lfo = createLFO(ac, speed, 2000); } - // sineGain.connect(saw.frequency); - for (let i = 0; i < 6; i++) { + const numStages = 2; + let fOffset = 0; + for (let i = 0; i < numStages; i++) { const gain = ac.createGain(); - gain.gain.value = 0.5; - const filter = createFilter(ac, 1000 + i * 20, 1); + gain.gain.value = 1 / numStages; + const filter = createFilter(ac, 1000 + fOffset, 0.5); this.connect(filter); - lfoGain.connect(filter.detune); + this.lfo.connect(filter.detune); filter.connect(gain); gain.connect(makeupGain); + fOffset += 200 + Math.pow(i, 2); } makeupGain.gain.value = 1; // how much makeup gain to add? this.connect = (target) => makeupGain.connect(target); diff --git a/packages/superdough/superdough.mjs b/packages/superdough/superdough.mjs index 3a215604..5473cc12 100644 --- a/packages/superdough/superdough.mjs +++ b/packages/superdough/superdough.mjs @@ -366,7 +366,7 @@ export const superdough = async (value, deadline, hapDuration) => { } if (phaser !== undefined) { - const phaserFX = ac.createPhaser(phaser); + const phaserFX = ac.createPhaser(phaser, hapDuration); chain.push(phaserFX); } From 52e2b90eefa68ea3ba56ab299b55d0725f66656a Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 5 Nov 2023 22:22:35 +0100 Subject: [PATCH 33/79] fix: scope pos --- packages/webaudio/scope.mjs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/webaudio/scope.mjs b/packages/webaudio/scope.mjs index 9f052e8e..3fce64d5 100644 --- a/packages/webaudio/scope.mjs +++ b/packages/webaudio/scope.mjs @@ -22,10 +22,9 @@ export function drawTimeScope( const sliceWidth = (canvas.width * 1.0) / bufferSize; let x = 0; - for (let i = triggerIndex; i < bufferSize; i++) { const v = dataArray[i] + 1; - const y = (1 - (scale * (v - 1) + pos)) * canvas.height; + const y = (pos - scale * (v - 1)) * canvas.height; if (i === 0) { ctx.moveTo(x, y); From 26d87b691cbb19c9c308bb8fb0a94bb85a2abdbe Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 5 Nov 2023 22:43:37 +0100 Subject: [PATCH 34/79] document scope functions --- packages/webaudio/scope.mjs | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/packages/webaudio/scope.mjs b/packages/webaudio/scope.mjs index 3fce64d5..1affd262 100644 --- a/packages/webaudio/scope.mjs +++ b/packages/webaudio/scope.mjs @@ -3,7 +3,7 @@ import { analyser, getAnalyzerData } from 'superdough'; export function drawTimeScope( analyser, - { align = true, color = 'white', thickness = 3, scale = 0.25, pos = 0.75, next = 1, trigger = 0 } = {}, + { align = true, color = 'white', thickness = 3, scale = 0.25, pos = 0.75, trigger = 0 } = {}, ) { const ctx = getDrawContext(); const dataArray = getAnalyzerData('time'); @@ -70,6 +70,18 @@ function clearScreen(smear = 0, smearRGB = `0,0,0`) { } } +/** + * Renders an oscilloscope for the frequency domain of the audio signal. + * @name fscope + * @param {string} color line color as hex or color name. defaults to white. + * @param {number} scale scales the y-axis. Defaults to 0.25 + * @param {number} pos y-position relative to screen height. 0 = top, 1 = bottom of screen + * @param {number} lean y-axis alignment where 0 = top and 1 = bottom + * @param {number} min min value + * @param {number} max max value + * @example + * s("sawtooth").fscope() + */ Pattern.prototype.fscope = function (config = {}) { return this.analyze(1).draw(() => { clearScreen(config.smear); @@ -77,6 +89,20 @@ Pattern.prototype.fscope = function (config = {}) { }); }; +/** + * Renders an oscilloscope for the time domain of the audio signal. + * @name scope + * @synonyms tscope + * @param {object} config optional config with options: + * @param {boolean} align if 1, the scope will be aligned to the first zero crossing. defaults to 1 + * @param {string} color line color as hex or color name. defaults to white. + * @param {number} thickness line thickness. defaults to 3 + * @param {number} scale scales the y-axis. Defaults to 0.25 + * @param {number} pos y-position relative to screen height. 0 = top, 1 = bottom of screen + * @param {number} trigger amplitude value that is used to align the scope. defaults to 0. + * @example + * s("sawtooth").scope() + */ Pattern.prototype.tscope = function (config = {}) { return this.analyze(1).draw(() => { clearScreen(config.smear); From c4f26c3cadd462749a3acc9577ed73d10d0f7566 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 5 Nov 2023 22:46:16 +0100 Subject: [PATCH 35/79] snapshot --- test/__snapshots__/examples.test.mjs.snap | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/test/__snapshots__/examples.test.mjs.snap b/test/__snapshots__/examples.test.mjs.snap index e920d931..39b9456f 100644 --- a/test/__snapshots__/examples.test.mjs.snap +++ b/test/__snapshots__/examples.test.mjs.snap @@ -2143,6 +2143,15 @@ exports[`runs examples > example "freq" example index 1 1`] = ` ] `; +exports[`runs examples > example "fscope" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | s:sawtooth analyze:1 ]", + "[ 1/1 → 2/1 | s:sawtooth analyze:1 ]", + "[ 2/1 → 3/1 | s:sawtooth analyze:1 ]", + "[ 3/1 → 4/1 | s:sawtooth analyze:1 ]", +] +`; + exports[`runs examples > example "ftype" example index 0 1`] = ` [ "[ 0/1 → 1/1 | note:c2 s:sawtooth cutoff:500 bpenv:4 ftype:12db ]", @@ -4235,6 +4244,15 @@ exports[`runs examples > example "scaleTranspose" example index 0 1`] = ` ] `; +exports[`runs examples > example "scope" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | s:sawtooth analyze:1 ]", + "[ 1/1 → 2/1 | s:sawtooth analyze:1 ]", + "[ 2/1 → 3/1 | s:sawtooth analyze:1 ]", + "[ 3/1 → 4/1 | s:sawtooth analyze:1 ]", +] +`; + exports[`runs examples > example "segment" example index 0 1`] = ` [ "[ 0/1 → 1/24 | note:40.25 ]", From 2ef35a8583eb3c462b2ece709110ae2e50baad87 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Mon, 6 Nov 2023 22:17:33 +0100 Subject: [PATCH 36/79] samples loading shortcuts: - use main branch by default in github shortcut - add bubo shortcut --- packages/superdough/sampler.mjs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/superdough/sampler.mjs b/packages/superdough/sampler.mjs index d0733b14..cbc591fb 100644 --- a/packages/superdough/sampler.mjs +++ b/packages/superdough/sampler.mjs @@ -162,9 +162,17 @@ export const samples = async (sampleMap, baseUrl = sampleMap._base || '', option if (handler) { return handler(sampleMap); } + if (sampleMap.startsWith('bubo:')) { + const [_, repo] = sampleMap.split(':'); + sampleMap = `github:Bubobubobubobubo/dough-${repo}`; + } if (sampleMap.startsWith('github:')) { let [_, path] = sampleMap.split('github:'); path = path.endsWith('/') ? path.slice(0, -1) : path; + if (path.split('/').length === 2) { + // assume main as default branch if none set + path += '/main'; + } sampleMap = `https://raw.githubusercontent.com/${path}/strudel.json`; } if (sampleMap.startsWith('shabda:')) { From 07da9a9dd28d75971173a0ef20c7647d4ee1b27e Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Mon, 6 Nov 2023 23:13:10 +0100 Subject: [PATCH 37/79] don't use anchor links for reference --- website/src/repl/Reference.jsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/website/src/repl/Reference.jsx b/website/src/repl/Reference.jsx index 00116623..cf6fd5b1 100644 --- a/website/src/repl/Reference.jsx +++ b/website/src/repl/Reference.jsx @@ -14,12 +14,20 @@ export function Reference() {
-
+

API Reference

From 9cbf3079f3bca2bc7cb2ee2192d86c883514a369 Mon Sep 17 00:00:00 2001 From: Jade Rowland Date: Mon, 6 Nov 2023 19:02:09 -0500 Subject: [PATCH 38/79] change to bus effect experiment --- packages/core/controls.mjs | 16 ++++-- packages/superdough/phaser.mjs | 21 ++++---- packages/superdough/superdough.mjs | 82 ++++++++++++++++++++++++++++-- 3 files changed, 102 insertions(+), 17 deletions(-) diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs index a616ce06..e3fa8be1 100644 --- a/packages/core/controls.mjs +++ b/packages/core/controls.mjs @@ -382,15 +382,25 @@ const generic_params = [ ['coarse'], /** - * fake-resampling for lowering the sample rate. Caution: This effect seems to only work in chromium based browsers + * Phaser audio effect that approximates popular guitar pedals. * * @name phaser - * @param {number | Pattern} factor 1 for original 2 for half, 3 for a third and so on. + * @param {number | Pattern} speed speed of modulation * @example - * s("bd sd,hh*4").coarse("<1 4 8 16 32>") + * run(8).scale("D:pentatonic").note().sound("sawtooth").phaser("2 8").release(0.5) * */ ['phaser'], + /** + * + * + * @name phaserDepth + * @param {number | Pattern} depth number between 0 and 1 + * @example + * run(8).scale("D:pentatonic").note().sound("sawtooth").phaser("2 8").phaserDepth(0.5).release(0.5) + * + */ + ['phaserDepth'], /** * choose the channel the pattern is sent to in superdirt * diff --git a/packages/superdough/phaser.mjs b/packages/superdough/phaser.mjs index bdb64c40..9aadc532 100644 --- a/packages/superdough/phaser.mjs +++ b/packages/superdough/phaser.mjs @@ -1,10 +1,10 @@ const createFilter = (ctx, cutoff, Q) => { - const lowpassFilter = ctx.createBiquadFilter(); - lowpassFilter.type = 'notch'; - lowpassFilter.gain.value = 1; - lowpassFilter.frequency.value = cutoff; - lowpassFilter.Q.value = Q; - return lowpassFilter; + const filter = ctx.createBiquadFilter(); + filter.type = 'notch'; + filter.gain.value = 1; + filter.frequency.value = cutoff; + filter.Q.value = Q; + return filter; }; const createOscillator = (ctx, freq) => { @@ -26,12 +26,15 @@ const createLFO = (ctx, freq, gain) => { osc.connect(gainNode); return gainNode; }; + if (typeof GainNode !== 'undefined') { class PhaserNode extends GainNode { - constructor(ac, speed, cps) { + constructor(ac, input) { super(ac); this.lfo; - console.log(cps); + + const { speed, depth = 0.5 } = input; + console.log(depth); const makeupGain = ac.createGain(); @@ -43,7 +46,7 @@ if (typeof GainNode !== 'undefined') { for (let i = 0; i < numStages; i++) { const gain = ac.createGain(); gain.gain.value = 1 / numStages; - const filter = createFilter(ac, 1000 + fOffset, 0.5); + const filter = createFilter(ac, 1000 + fOffset, 2 - Math.min(Math.max(depth * 2, 0), 1.9)); this.connect(filter); this.lfo.connect(filter.detune); filter.connect(gain); diff --git a/packages/superdough/superdough.mjs b/packages/superdough/superdough.mjs index 5473cc12..8ea28340 100644 --- a/packages/superdough/superdough.mjs +++ b/packages/superdough/superdough.mjs @@ -113,6 +113,71 @@ function getDelay(orbit, delaytime, delayfeedback, t) { return delays[orbit]; } +const createFilter2 = (ctx, cutoff, Q) => { + const filter = ctx.createBiquadFilter(); + filter.type = 'notch'; + filter.gain.value = 1; + filter.frequency.value = cutoff; + filter.Q.value = Q; + return filter; +}; + +const createOscillator = (ctx, freq) => { + const osc = ctx.createOscillator(); + osc.frequency.value = freq; + osc.type = 'sine'; + return osc; +}; +const createGain = (ctx, gain) => { + const gainNode = ctx.createGain(); + gainNode.gain.value = gain; + return gainNode; +}; + +const createLFO = (ctx, freq, gain) => { + const osc = createOscillator(ctx, freq); + const gainNode = createGain(ctx, gain); + osc.start(); + osc.connect(gainNode); + return gainNode; +}; + +let phasers = {}; + +function getPhaser(orbit, speed = 1, depth = 0.5) { + if (!delays[orbit]) { + const ac = getAudioContext(); + + let lfo; + + const makeupGain = ac.createGain(); + + if (lfo == null) { + lfo = createLFO(ac, speed, 2000); + } + const numStages = 2; + let fOffset = 0; + for (let i = 0; i < numStages; i++) { + const gain = ac.createGain(); + gain.gain.value = 1 / numStages; + const filter = createFilter2(ac, 1000 + fOffset, 2 - Math.min(Math.max(depth * 2, 0), 1.9)); + makeupGain.connect(filter); + lfo.connect(filter.detune); + filter.connect(gain); + gain.connect(makeupGain); + fOffset += 200 + Math.pow(i, 2); + } + makeupGain.gain.value = 1; // how much makeup gain to add? + + makeupGain.connect(getDestination()); + phasers[orbit] = makeupGain; + } + console.log(phasers); + // delays[orbit].delayTime.value !== delaytime && delays[orbit].delayTime.setValueAtTime(delaytime, t); + // delays[orbit].feedback.value !== delayfeedback && delays[orbit].feedback.setValueAtTime(delayfeedback, t); + return phasers[orbit]; +} + let reverbs = {}; let hasChanged = (now, before) => now !== undefined && now !== before; @@ -230,6 +295,7 @@ export const superdough = async (value, deadline, hapDuration) => { //phaser phaser, + phaserDepth, // coarse, crush, @@ -365,10 +431,10 @@ export const superdough = async (value, deadline, hapDuration) => { chain.push(vowelFilter); } - if (phaser !== undefined) { - const phaserFX = ac.createPhaser(phaser, hapDuration); - chain.push(phaserFX); - } + // if (phaser !== undefined) { + // const phaserFX = ac.createPhaser({ speed: phaser, depth: phaserDepth }); + // chain.push(phaserFX); + // } // effects coarse !== undefined && chain.push(getWorklet(ac, 'coarse-processor', { coarse })); @@ -393,6 +459,12 @@ export const superdough = async (value, deadline, hapDuration) => { chain.push(post); post.connect(getDestination()); + let phaserSend; + if (phaser != null) { + const phaserFX = getPhaser(orbit, phaser, phaserDepth); + + phaserSend = effectSend(post, phaserFX, 0.99); + } // delay let delaySend; if (delay > 0 && delaytime > 0 && delayfeedback > 0) { @@ -429,7 +501,7 @@ export const superdough = async (value, deadline, hapDuration) => { // toDisconnect = all the node that should be disconnected in onended callback // this is crucial for performance - toDisconnect = chain.concat([delaySend, reverbSend, analyserSend]); + toDisconnect = chain.concat([phaserSend, delaySend, reverbSend, analyserSend]); }; export const superdoughTrigger = (t, hap, ct, cps) => superdough(hap, t - ct, hap.duration / cps, cps); From b88f58cc211e67dfc226282882aba65449a5eed2 Mon Sep 17 00:00:00 2001 From: Bernhard Wagner Date: Tue, 7 Nov 2023 11:38:13 +0100 Subject: [PATCH 39/79] Update first-sounds.mdx in eine sogenannte Funktion -> in einer sogenannten Funktion --- website/src/pages/de/workshop/first-sounds.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/de/workshop/first-sounds.mdx b/website/src/pages/de/workshop/first-sounds.mdx index fea64cbd..a689add8 100644 --- a/website/src/pages/de/workshop/first-sounds.mdx +++ b/website/src/pages/de/workshop/first-sounds.mdx @@ -277,7 +277,7 @@ Das haben wir bisher gelernt: | Schneller | \* | | | Parallel | , | | -Die mit Apostrophen umgebene Mini-Notation benutzt man normalerweise in eine sogenannten Funktion. +Die mit Apostrophen umgebene Mini-Notation benutzt man normalerweise in einer sogenannten Funktion. Die folgenden Funktionen haben wir bereits gesehen: | Name | Description | Example | From eed2c304e483f4f920163565b90b7b7cc123fcba Mon Sep 17 00:00:00 2001 From: Bernhard Wagner Date: Tue, 7 Nov 2023 15:57:31 +0100 Subject: [PATCH 40/79] Update first-effects.mdx grammatical amendments --- .../src/pages/de/workshop/first-effects.mdx | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/website/src/pages/de/workshop/first-effects.mdx b/website/src/pages/de/workshop/first-effects.mdx index 7719249a..b408a343 100644 --- a/website/src/pages/de/workshop/first-effects.mdx +++ b/website/src/pages/de/workshop/first-effects.mdx @@ -25,7 +25,7 @@ import Box from '@components/Box.astro'; lpf = **l**ow **p**ass **f**ilter -- Ändere `lpf` in 200. Hörst du wie der Bass dumpfer klingt? Es klingt so ähnlich als würde die Musik hinter einer geschlossenen Tür laufen 🚪 +- Ändere `lpf` in 200. Hörst du, wie der Bass dumpfer klingt? Es klingt so, als würde die Musik hinter einer geschlossenen Tür spielen 🚪 - Lass uns nun die Tür öffnen: Ändere `lpf` in 5000. Der Klang wird dadurch viel heller und schärfer ✨🪩 @@ -42,9 +42,9 @@ lpf = **l**ow **p**ass **f**ilter - Füg noch mehr `lpf` Werte hinzu -- Das pattern in `lpf` ändert nicht den Rhythmus der Bassline +- Das Pattern in `lpf` ändert nicht den Rhythmus der Basslinie -Später sehen wir wie man mit Wellenformen Dinge automatisieren kann. +Später sehen wir, wie man mit Wellenformen Dinge automatisieren kann. @@ -73,7 +73,7 @@ Später sehen wir wie man mit Wellenformen Dinge automatisieren kann. Bei Rhythmen ist die Dynamik (= Veränderungen der Lautstärke) sehr wichtig. -- Entferne `.gain(...)` und achte darauf wie es viel flacher klingt. +- Entferne `.gain(...)` und achte darauf, wie es viel flacher klingt. - Mach es rückgängig (strg+z dann strg+enter) @@ -99,13 +99,13 @@ Lass uns die obigen Beispiele kombinieren: -Versuche die einzelnen Teile innerhalb `stack` zu erkennen, schau dir an wie die Kommas gesetzt sind. +Versuche die einzelnen Teile innerhalb von `stack` zu erkennen. Schau dir an wie die Kommas gesetzt sind. -Die 3 Teile (Drums, Bass, Akkorde) sind genau wie vorher, nur in einem `stack`, getrennt durch Kommas +Die 3 Teile (Drums, Bass, Akkorde) sind genau wie vorher, nur in einem `stack`, getrennt durch Kommas. -**Den Sound formen mit ADSR Hüllkurve** +**Den Sound formen mit ADSR-Hüllkurve** -Versuche herauszufinden was die Zahlen machen. Probier folgendes: +Versuche herauszufinden, was die Zahlen machen. Probier folgendes: - attack: `.5` vs `0` - decay: `.5` vs `0` - sustain: `1` vs `.25` vs `0` - release: `0` vs `.5` vs `1` -Kannst du erraten was die einzelnen Werte machen? +Kannst du erraten, was die einzelnen Werte machen? @@ -142,7 +142,7 @@ Kannst du erraten was die einzelnen Werte machen? -**adsr Kurznotation** +**adsr-Kurznotation** @@ -181,7 +181,7 @@ Was passiert wenn du `.delay(".8:.06:.8")` schreibst? Kannst du erraten was die - a: Lautstärke des Delays - b: Verzögerungszeit -- c: Feedback (je kleiner desto schneller verschwindet das Delay) +- c: Feedback (je kleiner, desto schneller verschwindet das Delay) @@ -203,7 +203,7 @@ Füg auch ein Delay hinzu! -**kleiner dub tune** +**kleiner Dub-Tune** -Füg `.hush()` ans ende eines Patterns im stack... +Füg `.hush()` ans Ende eines Patterns im stack... @@ -258,25 +258,25 @@ Füg `.hush()` ans ende eines Patterns im stack... **fast and slow = schnell und langsam** -Mit `fast` und `slow` kann man das tempo eines patterns außerhalb der Mini-Notation ändern: +Mit `fast` und `slow` kann man das Tempo eines Patterns außerhalb der Mini-Notation ändern: -Ändere den `slow` Wert. Tausche `slow` durch `fast`. +Ändere den `slow`-Wert. Ersetze `slow` durch `fast`. -Was passiert wenn du den Wert automatisierst? z.b. `.fast("<1 [2 4]>")` ? +Was passiert, wenn du den Wert automatisierst? z.b. `.fast("<1 [2 4]>")` ? -Übrigens, innerhalb der Mini-Notation, `fast` ist `*` und `slow` ist `/`. +Übrigens, innerhalb der Mini-Notation: `fast` ist `*` und `slow` ist `/`. ")`} /> ## Automation mit Signalen -Anstatt Werte schrittweise zu automatisieren können wir auch sogenannte Signale benutzen: +Anstatt Werte schrittweise zu automatisieren, können wir auch sogenannte Signale benutzen: @@ -296,7 +296,7 @@ Signale bewegen sich standardmäßig zwischen 0 und 1. Wir können das mit `rang -`range` ist nützlich wenn wir Funktionen mit einem anderen Wertebereich als 0 und 1 automatisieren wollen (z.b. lpf) +`range` ist nützlich wenn wir Funktionen mit einem anderen Wertebereich als 0 und 1 automatisieren wollen (z.b. `lpf`) @@ -322,7 +322,7 @@ Die ganze Automation braucht nun 8 cycle bis sie sich wiederholt. ## Rückblick -| name | example | +| Name | Beispiel | | ----- | -------------------------------------------------------------------------------------------------- | | lpf | ")`} /> | | vowel | ")`} /> | @@ -333,4 +333,4 @@ Die ganze Automation braucht nun 8 cycle bis sie sich wiederholt. | speed | ")`} /> | | range | | -Lass uns nun die für Tidal typischen [Pattern Effekte anschauen](/de/workshop/pattern-effects). +Lass uns nun die für Tidal typischen [Pattern-Effekte anschauen](/de/workshop/pattern-effects). From df277d6b7b66147563a64d4fe561d93a099328ba Mon Sep 17 00:00:00 2001 From: Bernhard Wagner Date: Tue, 7 Nov 2023 16:10:57 +0100 Subject: [PATCH 41/79] Update pattern-effects.mdx grammatical amendments --- .../src/pages/de/workshop/pattern-effects.mdx | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/website/src/pages/de/workshop/pattern-effects.mdx b/website/src/pages/de/workshop/pattern-effects.mdx index b701958a..6603db06 100644 --- a/website/src/pages/de/workshop/pattern-effects.mdx +++ b/website/src/pages/de/workshop/pattern-effects.mdx @@ -1,5 +1,5 @@ --- -title: Pattern Effekte +title: Pattern-Effekte layout: ../../../layouts/MainLayout.astro --- @@ -7,11 +7,11 @@ import { MiniRepl } from '@src/docs/MiniRepl'; import Box from '@components/Box.astro'; import QA from '@components/QA'; -# Pattern Effekte +# Pattern-Effekte -Bis jetzt sind die meisten Funktionen die wir kennengelernt haben ähnlich wie Funktionen in anderen Musik Programmen: Sequencing von Sounds, Noten und Effekten. +Bis jetzt sind die meisten Funktionen, die wir kennengelernt haben, ähnlich wie Funktionen in anderen Musik Programmen: Sequencing von Sounds, Noten und Effekten. -In diesem Kapitel beschäftigen wir uns mit Funktionen die weniger herkömmlich oder auch enzigartig sind. +In diesem Kapitel beschäftigen wir uns mit Funktionen die weniger herkömmlich oder auch einzigartig sind. **rev = rückwärts abspielen** @@ -21,7 +21,7 @@ In diesem Kapitel beschäftigen wir uns mit Funktionen die weniger herkömmlich -So würde man das ohne jux schreiben: +So würde man das ohne `jux` schreiben: -Lass uns visualisieren was hier passiert: +Lass uns visualisieren, was hier passiert: -Das hat den gleichen Effekt wie: +Das hat den gleichen Effekt, wie: "` -In der notation `x=>x.`, das `x` ist das Pattern das wir bearbeiten. +In der Notation `x=>x.`, ist `x` das Pattern, das wir bearbeiten. -`off` ist auch nützlich für sounds: +`off` ist auch nützlich für Sounds: x.`, das `x` ist das Pattern das wir bearbeiten. .off(1/8, x=>x.speed(1.5).gain(.25))`} /> -| name | description | example | -| ---- | --------------------------------- | ---------------------------------------------------------------------------------------------- | -| rev | rückwärts | | -| jux | ein stereo-kanal modifizieren | | -| add | addiert zahlen oder noten | ")).scale("C:minor")`} /> | -| ply | multipliziert jedes element x mal | ")`} /> | -| off | verzögert eine modifizierte kopie | x.speed(2))`} /> | +| Name | Beschreibung | Beispiel | +| ---- | ----------------------------------- | ---------------------------------------------------------------------------------------------- | +| rev | rückwärts | | +| jux | einen Stereo-Kanal modifizieren | | +| add | addiert Zahlen oder Noten | ")).scale("C:minor")`} /> | +| ply | multipliziert jedes Element x mal | ")`} /> | +| off | verzögert eine modifizierte Kopie | x.speed(2))`} /> | From 23dd9d4c01e52c42f02fd494df290e1efe431700 Mon Sep 17 00:00:00 2001 From: Bernhard Wagner Date: Tue, 7 Nov 2023 16:16:46 +0100 Subject: [PATCH 42/79] Update recap.mdx Adds a few missing translations --- website/src/pages/de/workshop/recap.mdx | 50 ++++++++++++------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/website/src/pages/de/workshop/recap.mdx b/website/src/pages/de/workshop/recap.mdx index db392b8b..c0d577d1 100644 --- a/website/src/pages/de/workshop/recap.mdx +++ b/website/src/pages/de/workshop/recap.mdx @@ -7,19 +7,19 @@ import { MiniRepl } from '../../../docs/MiniRepl'; # Workshop Rückblick -Diese Seite ist eine Auflistung aller im Workshop enthaltenen Funktionen. +Diese Seite ist eine Auflistung aller im Workshop vorgestellten Funktionen. ## Mini Notation -| Concept | Syntax | Example | +| Konzept | Syntax | Beispiel | | --------------------- | -------- | -------------------------------------------------------------------------------- | -| Sequence | space | | -| Sample Nummer | :x | | +| Sequenz | space | | +| Sample-Nummer | :x | | | Pausen | ~ | | -| Unter-Sequences | \[\] | | -| Unter-Unter-Sequences | \[\[\]\] | | +| Unter-Sequenzen | \[\] | | +| Unter-Unter-Sequenzen | \[\[\]\] | | | Schneller | \* | | -| Slow down | \/ | | +| Verlangsamen | \/ | | | Parallel | , | | | Alternieren | \<\> | ")`} /> | | Verlängern | @ | | @@ -27,23 +27,23 @@ Diese Seite ist eine Auflistung aller im Workshop enthaltenen Funktionen. ## Sounds -| Name | Description | Example | +| Name | Beschreibung | Beispiel | | ----- | -------------------------- | ---------------------------------------------------------------------------------- | -| sound | spielt den sound mit namen | | -| bank | wählt die soundbank | | -| n | wählt sample mit nummer | | +| sound | spielt den Sound mit Namen | | +| bank | wählt die Soundbank | | +| n | wählt Sample mit Nummer | | -## Notes +## Noten -| Name | Description | Example | +| Name | Beschreibung | Beispiel | | --------- | ---------------------------------- | -------------------------------------------------------------------------------------------- | -| note | wählt note per zahl oder buchstabe | | -| n + scale | wählt note n in skala | | -| stack | spielt mehrere patterns parallel | | +| note | wählt Note per Zahl oder Buchstabe | | +| n + scale | wählt Note n in Skala | | +| stack | spielt mehrere Patterns parallel | | -## Audio Effekte +## Audio-Effekte -| name | example | +| Name | Beispiele | | ----- | -------------------------------------------------------------------------------------------------- | | lpf | ")`} /> | | vowel | ")`} /> | @@ -54,15 +54,15 @@ Diese Seite ist eine Auflistung aller im Workshop enthaltenen Funktionen. | speed | ")`} /> | | range | | -## Pattern Effects +## Pattern-Effekte -| name | description | example | +| Name | Beschreibung | Beispiel | | ---- | --------------------------------- | ---------------------------------------------------------------------------------------------- | -| cpm | tempo in cycles pro minute | | +| cpm | Tempo in Cycles pro Minute | | | fast | schneller | | | slow | langsamer | | | rev | rückwärts | | -| jux | ein stereo-kanal modifizieren | | -| add | addiert zahlen oder noten | ")).scale("C:minor")`} /> | -| ply | jedes element schneller machen | ")`} /> | -| off | verzögert eine modifizierte kopie | x.speed(2))`} /> | +| jux | einen Stereo-Kanal modifizieren | | +| add | addiert Zahlen oder Noten | ")).scale("C:minor")`} /> | +| ply | jedes Element schneller machen | ")`} /> | +| off | verzögert eine modifizierte Kopie | x.speed(2))`} /> | From 4a16cd891f771165ee4f2f3fd4cc0126fe8e5d2e Mon Sep 17 00:00:00 2001 From: Bernhard Wagner Date: Tue, 7 Nov 2023 18:55:35 +0100 Subject: [PATCH 43/79] FIXES: table --- website/src/pages/de/workshop/pattern-effects.mdx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/website/src/pages/de/workshop/pattern-effects.mdx b/website/src/pages/de/workshop/pattern-effects.mdx index 6603db06..70335881 100644 --- a/website/src/pages/de/workshop/pattern-effects.mdx +++ b/website/src/pages/de/workshop/pattern-effects.mdx @@ -174,10 +174,10 @@ In der Notation `x=>x.`, ist `x` das Pattern, das wir bearbeiten. .off(1/8, x=>x.speed(1.5).gain(.25))`} /> -| Name | Beschreibung | Beispiel | -| ---- | ----------------------------------- | ---------------------------------------------------------------------------------------------- | -| rev | rückwärts | | -| jux | einen Stereo-Kanal modifizieren | | -| add | addiert Zahlen oder Noten | ")).scale("C:minor")`} /> | -| ply | multipliziert jedes Element x mal | ")`} /> | -| off | verzögert eine modifizierte Kopie | x.speed(2))`} /> | +| Name | Beschreibung | Beispiel | +| ---- | --------------------------------- | ---------------------------------------------------------------------------------------------- | +| rev | rückwärts | | +| jux | einen Stereo-Kanal modifizieren | | +| add | addiert Zahlen oder Noten | ")).scale("C:minor")`} /> | +| ply | multipliziert jedes Element x mal | ")`} /> | +| off | verzögert eine modifizierte Kopie | x.speed(2))`} /> | From 0edd54dee331f12d80d6fa98b12222330e732558 Mon Sep 17 00:00:00 2001 From: Jade Rowland Date: Tue, 7 Nov 2023 20:23:45 -0500 Subject: [PATCH 44/79] cleaning up --- packages/superdough/superdough.mjs | 110 +++++++++++------------------ 1 file changed, 43 insertions(+), 67 deletions(-) diff --git a/packages/superdough/superdough.mjs b/packages/superdough/superdough.mjs index 8ea28340..2dc560d9 100644 --- a/packages/superdough/superdough.mjs +++ b/packages/superdough/superdough.mjs @@ -113,69 +113,46 @@ function getDelay(orbit, delaytime, delayfeedback, t) { return delays[orbit]; } -const createFilter2 = (ctx, cutoff, Q) => { - const filter = ctx.createBiquadFilter(); - filter.type = 'notch'; - filter.gain.value = 1; - filter.frequency.value = cutoff; - filter.Q.value = Q; - return filter; -}; +let phaserLFOs = {}; -const createOscillator = (ctx, freq) => { - const osc = ctx.createOscillator(); - osc.frequency.value = freq; - osc.type = 'sine'; - return osc; -}; -const createGain = (ctx, gain) => { - const gainNode = ctx.createGain(); - gainNode.gain.value = gain; - return gainNode; -}; +function getPhaser(orbit, speed = 1, depth = 0.5, t) { + //gain + const ac = getAudioContext(); + const lfoGain = ac.createGain(); + lfoGain.gain.value = 2000; -const createLFO = (ctx, freq, gain) => { - const osc = createOscillator(ctx, freq); - const gainNode = createGain(ctx, gain); - osc.start(); - osc.connect(gainNode); - return gainNode; -}; - -let phasers = {}; - -function getPhaser(orbit, speed = 1, depth = 0.5) { - if (!delays[orbit]) { - const ac = getAudioContext(); - - let lfo; - - const makeupGain = ac.createGain(); - - if (lfo == null) { - lfo = createLFO(ac, speed, 2000); - } - const numStages = 2; - let fOffset = 0; - for (let i = 0; i < numStages; i++) { - const gain = ac.createGain(); - gain.gain.value = 1 / numStages; - const filter = createFilter2(ac, 1000 + fOffset, 2 - Math.min(Math.max(depth * 2, 0), 1.9)); - makeupGain.connect(filter); - lfo.connect(filter.detune); - filter.connect(gain); - gain.connect(makeupGain); - fOffset += 200 + Math.pow(i, 2); - } - makeupGain.gain.value = 1; // how much makeup gain to add? - - makeupGain.connect(getDestination()); - phasers[orbit] = makeupGain; + //lfo + if (phaserLFOs[orbit] == null) { + const lfo = ac.createOscillator(); + lfo.frequency.value = speed; + lfo.type = 'sine'; + lfo.start(); + phaserLFOs[orbit] = lfo; } - console.log(phasers); - // delays[orbit].delayTime.value !== delaytime && delays[orbit].delayTime.setValueAtTime(delaytime, t); - // delays[orbit].feedback.value !== delayfeedback && delays[orbit].feedback.setValueAtTime(delayfeedback, t); - return phasers[orbit]; + if (phaserLFOs[orbit].frequency.value !== speed) { + phaserLFOs[orbit].frequency.setValueAtTime(speed, t); + } + phaserLFOs[orbit].connect(lfoGain); + + //filters + const numStages = 2; //num of filters in series + let fOffset = 0; + const filterChain = []; + for (let i = 0; i < numStages; i++) { + const filter = ac.createBiquadFilter(); + filter.type = 'notch'; + filter.gain.value = 1; + filter.frequency.value = 1000 + fOffset; + filter.Q.value = 2 - Math.min(Math.max(depth * 2, 0), 1.9); + + lfoGain.connect(filter.detune); + fOffset += 282; + if (i > 0) { + filterChain[i - 1].connect(filter); + } + filterChain.push(filter); + } + return filterChain[filterChain.length - 1]; } let reverbs = {}; @@ -453,18 +430,17 @@ export const superdough = async (value, deadline, hapDuration) => { panner.pan.value = 2 * pan - 1; chain.push(panner); } + // phaser + if (phaser !== undefined) { + const phaserFX = getPhaser(orbit, phaser, phaserDepth, t); + chain.push(phaserFX); + } // last gain const post = gainNode(postgain); chain.push(post); post.connect(getDestination()); - let phaserSend; - if (phaser != null) { - const phaserFX = getPhaser(orbit, phaser, phaserDepth); - - phaserSend = effectSend(post, phaserFX, 0.99); - } // delay let delaySend; if (delay > 0 && delaytime > 0 && delayfeedback > 0) { @@ -501,7 +477,7 @@ export const superdough = async (value, deadline, hapDuration) => { // toDisconnect = all the node that should be disconnected in onended callback // this is crucial for performance - toDisconnect = chain.concat([phaserSend, delaySend, reverbSend, analyserSend]); + toDisconnect = chain.concat([delaySend, reverbSend, analyserSend]); }; export const superdoughTrigger = (t, hap, ct, cps) => superdough(hap, t - ct, hap.duration / cps, cps); From bee36a7a4f89b3e8fd873fabaf7d0fbe82880887 Mon Sep 17 00:00:00 2001 From: Jade Rowland Date: Tue, 7 Nov 2023 20:25:31 -0500 Subject: [PATCH 45/79] cleaning up --- packages/superdough/phaser.mjs | 65 ------------------------------ packages/superdough/superdough.mjs | 1 - 2 files changed, 66 deletions(-) delete mode 100644 packages/superdough/phaser.mjs diff --git a/packages/superdough/phaser.mjs b/packages/superdough/phaser.mjs deleted file mode 100644 index 9aadc532..00000000 --- a/packages/superdough/phaser.mjs +++ /dev/null @@ -1,65 +0,0 @@ -const createFilter = (ctx, cutoff, Q) => { - const filter = ctx.createBiquadFilter(); - filter.type = 'notch'; - filter.gain.value = 1; - filter.frequency.value = cutoff; - filter.Q.value = Q; - return filter; -}; - -const createOscillator = (ctx, freq) => { - const osc = ctx.createOscillator(); - osc.frequency.value = freq; - osc.type = 'sine'; - return osc; -}; -const createGain = (ctx, gain) => { - const gainNode = ctx.createGain(); - gainNode.gain.value = gain; - return gainNode; -}; - -const createLFO = (ctx, freq, gain) => { - const osc = createOscillator(ctx, freq); - const gainNode = createGain(ctx, gain); - osc.start(); - osc.connect(gainNode); - return gainNode; -}; - -if (typeof GainNode !== 'undefined') { - class PhaserNode extends GainNode { - constructor(ac, input) { - super(ac); - this.lfo; - - const { speed, depth = 0.5 } = input; - console.log(depth); - - const makeupGain = ac.createGain(); - - if (this.lfo == null) { - this.lfo = createLFO(ac, speed, 2000); - } - const numStages = 2; - let fOffset = 0; - for (let i = 0; i < numStages; i++) { - const gain = ac.createGain(); - gain.gain.value = 1 / numStages; - const filter = createFilter(ac, 1000 + fOffset, 2 - Math.min(Math.max(depth * 2, 0), 1.9)); - this.connect(filter); - this.lfo.connect(filter.detune); - filter.connect(gain); - gain.connect(makeupGain); - fOffset += 200 + Math.pow(i, 2); - } - makeupGain.gain.value = 1; // how much makeup gain to add? - this.connect = (target) => makeupGain.connect(target); - return this; - } - } - - AudioContext.prototype.createPhaser = function (speed) { - return new PhaserNode(this, speed); - }; -} diff --git a/packages/superdough/superdough.mjs b/packages/superdough/superdough.mjs index 2dc560d9..9721c5c8 100644 --- a/packages/superdough/superdough.mjs +++ b/packages/superdough/superdough.mjs @@ -7,7 +7,6 @@ This program is free software: you can redistribute it and/or modify it under th import './feedbackdelay.mjs'; import './reverb.mjs'; import './vowel.mjs'; -import './phaser.mjs'; import { clamp } from './util.mjs'; import workletsUrl from './worklets.mjs?url'; import { createFilter, gainNode, getCompressor } from './helpers.mjs'; From f0a582dc926d91bec904ea71a4060d3d177a8158 Mon Sep 17 00:00:00 2001 From: Jade Rowland Date: Tue, 7 Nov 2023 21:10:12 -0500 Subject: [PATCH 46/79] cleaning up --- packages/core/controls.mjs | 13 ++++++------ packages/superdough/README.md | 2 ++ packages/superdough/superdough.mjs | 32 +++++++++-------------------- packages/superdough/worklets.mjs | 33 ------------------------------ 4 files changed, 19 insertions(+), 61 deletions(-) diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs index e3fa8be1..ab1bea69 100644 --- a/packages/core/controls.mjs +++ b/packages/core/controls.mjs @@ -387,20 +387,21 @@ const generic_params = [ * @name phaser * @param {number | Pattern} speed speed of modulation * @example - * run(8).scale("D:pentatonic").note().sound("sawtooth").phaser("2 8").release(0.5) + * run(8).scale("D:pentatonic").note().sound("sawtooth").release(0.5).phaser("2 8") * */ ['phaser'], /** + * The depth of modulation for phaser * - * - * @name phaserDepth + * @name phaserdepth * @param {number | Pattern} depth number between 0 and 1 * @example - * run(8).scale("D:pentatonic").note().sound("sawtooth").phaser("2 8").phaserDepth(0.5).release(0.5) + * run(8).scale("D:pentatonic").note().sound("sawtooth").release(0.5).phaser("2 8").phaserdepth(0.5) * */ - ['phaserDepth'], + ['phaserdepth'], + /** * choose the channel the pattern is sent to in superdirt * @@ -1191,7 +1192,7 @@ const generic_params = [ ['tremolodepth', 'tremdp'], ['tremolorate', 'tremr'], // TODO: doesn't seem to do anything - ['phaserdepth', 'phasdp'], + ['phasdp'], ['phaserrate', 'phasr'], ['fshift'], diff --git a/packages/superdough/README.md b/packages/superdough/README.md index c5950dbf..7c199deb 100644 --- a/packages/superdough/README.md +++ b/packages/superdough/README.md @@ -67,6 +67,8 @@ superdough({ s: 'bd', delay: 0.5 }, 0, 1); - `crush`: amplitude bit crusher using given number of bits - `shape`: distortion effect from 0 (none) to 1 (full). might get loud! - `pan`: stereo panning from 0 (left) to 1 (right) + - `phaser`: sets the speed of the modulation + - `phaserdepth` - `vowel`: vowel filter. possible values: "a", "e", "i", "o", "u" - `delay`: delay mix - `delayfeedback`: delay feedback diff --git a/packages/superdough/superdough.mjs b/packages/superdough/superdough.mjs index 9721c5c8..31537642 100644 --- a/packages/superdough/superdough.mjs +++ b/packages/superdough/superdough.mjs @@ -112,26 +112,18 @@ function getDelay(orbit, delaytime, delayfeedback, t) { return delays[orbit]; } -let phaserLFOs = {}; - -function getPhaser(orbit, speed = 1, depth = 0.5, t) { +function getPhaser(speed = 1, depth = 0.5) { //gain const ac = getAudioContext(); const lfoGain = ac.createGain(); lfoGain.gain.value = 2000; - //lfo - if (phaserLFOs[orbit] == null) { - const lfo = ac.createOscillator(); - lfo.frequency.value = speed; - lfo.type = 'sine'; - lfo.start(); - phaserLFOs[orbit] = lfo; - } - if (phaserLFOs[orbit].frequency.value !== speed) { - phaserLFOs[orbit].frequency.setValueAtTime(speed, t); - } - phaserLFOs[orbit].connect(lfoGain); + //lfo TODO: set the lfo phase relative to current cycle to create "free running" effect + const lfo = ac.createOscillator(); + lfo.frequency.value = speed; + lfo.type = 'sine'; + lfo.start(); + lfo.connect(lfoGain); //filters const numStages = 2; //num of filters in series @@ -271,7 +263,7 @@ export const superdough = async (value, deadline, hapDuration) => { //phaser phaser, - phaserDepth, + phaserdepth, // coarse, crush, @@ -306,6 +298,7 @@ export const superdough = async (value, deadline, hapDuration) => { if (bank && s) { s = `${bank}_${s}`; } + // get source AudioNode let sourceNode; if (source) { @@ -407,11 +400,6 @@ export const superdough = async (value, deadline, hapDuration) => { chain.push(vowelFilter); } - // if (phaser !== undefined) { - // const phaserFX = ac.createPhaser({ speed: phaser, depth: phaserDepth }); - // chain.push(phaserFX); - // } - // effects coarse !== undefined && chain.push(getWorklet(ac, 'coarse-processor', { coarse })); crush !== undefined && chain.push(getWorklet(ac, 'crush-processor', { crush })); @@ -431,7 +419,7 @@ export const superdough = async (value, deadline, hapDuration) => { } // phaser if (phaser !== undefined) { - const phaserFX = getPhaser(orbit, phaser, phaserDepth, t); + const phaserFX = getPhaser(phaser, phaserdepth); chain.push(phaserFX); } diff --git a/packages/superdough/worklets.mjs b/packages/superdough/worklets.mjs index cce52453..7bb43f87 100644 --- a/packages/superdough/worklets.mjs +++ b/packages/superdough/worklets.mjs @@ -106,36 +106,3 @@ class ShapeProcessor extends AudioWorkletProcessor { } registerProcessor('shape-processor', ShapeProcessor); - -// class PhaseProcessor extends AudioWorkletProcessor { -// static get parameterDescriptors() { -// return [{ name: 'phaser', defaultValue: 0 }]; -// } - -// constructor() { -// super(); -// this.notStarted = true; -// } - -// process(inputs, outputs, parameters) { -// const input = inputs[0]; -// const output = outputs[0]; -// const phaser0 = parameters.phaser[0]; -// const phaser1 = phaser0 < 1 ? phaser0 : 1.0 - 4e-10; -// const phaser = (2.0 * phaser1) / (1.0 - phaser1); -// const blockSize = 128; -// const hasInput = !(input[0] === undefined); -// if (hasInput) { -// this.notStarted = false; -// for (let n = 0; n < blockSize; n++) { -// const value = ((1 + phaser) * input[0][n]) / (1 + phaser * Math.abs(input[0][n])); -// for (let o = 0; o < output.length; o++) { -// output[o][n] = value; -// } -// } -// } -// return this.notStarted || hasInput; -// } -// } - -// registerProcessor('phaser-processor', PhaseProcessor); From 51c63fa996f63991e0136fe922f6f21d37ea6197 Mon Sep 17 00:00:00 2001 From: Jade Rowland Date: Tue, 7 Nov 2023 21:44:57 -0500 Subject: [PATCH 47/79] turn off of depth is 0 --- packages/superdough/superdough.mjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/superdough/superdough.mjs b/packages/superdough/superdough.mjs index 31537642..4d0f2e23 100644 --- a/packages/superdough/superdough.mjs +++ b/packages/superdough/superdough.mjs @@ -263,7 +263,7 @@ export const superdough = async (value, deadline, hapDuration) => { //phaser phaser, - phaserdepth, + phaserdepth = 0.75, // coarse, crush, @@ -418,7 +418,7 @@ export const superdough = async (value, deadline, hapDuration) => { chain.push(panner); } // phaser - if (phaser !== undefined) { + if (phaser !== undefined && phaserdepth > 0) { const phaserFX = getPhaser(phaser, phaserdepth); chain.push(phaserFX); } From 2e4d28b9100e460c3c9c6787417dc5f3bb7b1053 Mon Sep 17 00:00:00 2001 From: Jade Rowland Date: Tue, 7 Nov 2023 21:49:56 -0500 Subject: [PATCH 48/79] update doc --- packages/core/controls.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs index ab1bea69..1374f25c 100644 --- a/packages/core/controls.mjs +++ b/packages/core/controls.mjs @@ -392,7 +392,7 @@ const generic_params = [ */ ['phaser'], /** - * The depth of modulation for phaser + * The amount the signal is affected by the phaser effect * * @name phaserdepth * @param {number | Pattern} depth number between 0 and 1 From 65d07dbff22eaf35511af1b6b457a19e75832756 Mon Sep 17 00:00:00 2001 From: Jade Rowland Date: Tue, 7 Nov 2023 22:09:53 -0500 Subject: [PATCH 49/79] create free running lfos for different orbits --- packages/superdough/superdough.mjs | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/packages/superdough/superdough.mjs b/packages/superdough/superdough.mjs index 4d0f2e23..3e63a55a 100644 --- a/packages/superdough/superdough.mjs +++ b/packages/superdough/superdough.mjs @@ -112,18 +112,25 @@ function getDelay(orbit, delaytime, delayfeedback, t) { return delays[orbit]; } -function getPhaser(speed = 1, depth = 0.5) { +const phaserLFOs = {}; +function getPhaser(orbit, t, speed = 1, depth = 0.5) { //gain const ac = getAudioContext(); const lfoGain = ac.createGain(); lfoGain.gain.value = 2000; - //lfo TODO: set the lfo phase relative to current cycle to create "free running" effect - const lfo = ac.createOscillator(); - lfo.frequency.value = speed; - lfo.type = 'sine'; - lfo.start(); - lfo.connect(lfoGain); + //LFO + if (phaserLFOs[orbit] == null) { + phaserLFOs[orbit] = ac.createOscillator(); + phaserLFOs[orbit].frequency.value = speed; + phaserLFOs[orbit].type = 'sine'; + phaserLFOs[orbit].start(); + } + + phaserLFOs[orbit].connect(lfoGain); + if (phaserLFOs[orbit].frequency.value != speed) { + phaserLFOs[orbit].frequency.setValueAtTime(speed, t); + } //filters const numStages = 2; //num of filters in series @@ -419,7 +426,7 @@ export const superdough = async (value, deadline, hapDuration) => { } // phaser if (phaser !== undefined && phaserdepth > 0) { - const phaserFX = getPhaser(phaser, phaserdepth); + const phaserFX = getPhaser(orbit, t, phaser, phaserdepth); chain.push(phaserFX); } From 4b4290e0871eab7f83828d26644dc9c1d47c7f92 Mon Sep 17 00:00:00 2001 From: Jade Rowland Date: Tue, 7 Nov 2023 22:52:39 -0500 Subject: [PATCH 50/79] add more parameters --- packages/core/controls.mjs | 26 +++++++++++++++++++++++++- packages/superdough/superdough.mjs | 12 +++++++----- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs index 58b027ba..4414219e 100644 --- a/packages/core/controls.mjs +++ b/packages/core/controls.mjs @@ -391,13 +391,37 @@ const generic_params = [ * */ ['phaser'], + + /** + * The frequency sweep range of the lfo for the phaser effect + * + * @name phasersweep + * @param {number | Pattern} phasersweep most useful values are between 0 and 4000 + * @example + * run(8).scale("D:pentatonic").note().sound("sawtooth").release(0.5).phaser("2 8").phasersweep(800) + * + */ + ['phasersweep'], + + /** + * The center frequency of the phaser in HZ + * + * @name phasercenter + * @param {number | Pattern} centerfrequency most useful values are between 0 and 1 + * @example + * run(8).scale("D:pentatonic").note().sound("sawtooth").release(0.5).phaser("2 8").phasercenter(2000) + * + */ + + ['phasercenter'], + /** * The amount the signal is affected by the phaser effect * * @name phaserdepth * @param {number | Pattern} depth number between 0 and 1 * @example - * run(8).scale("D:pentatonic").note().sound("sawtooth").release(0.5).phaser("2 8").phaserdepth(0.5) + * run(8).scale("D:pentatonic").note().sound("sawtooth").release(0.5).phaser("2 8").phasercenter(200) * */ ['phaserdepth'], diff --git a/packages/superdough/superdough.mjs b/packages/superdough/superdough.mjs index 3e63a55a..00e2f42c 100644 --- a/packages/superdough/superdough.mjs +++ b/packages/superdough/superdough.mjs @@ -112,12 +112,13 @@ function getDelay(orbit, delaytime, delayfeedback, t) { return delays[orbit]; } +// each orbit will have its own lfo const phaserLFOs = {}; -function getPhaser(orbit, t, speed = 1, depth = 0.5) { +function getPhaser(orbit, t, speed = 1, depth = 0.5, centerFrequency = 1000, sweep = 2000) { //gain const ac = getAudioContext(); const lfoGain = ac.createGain(); - lfoGain.gain.value = 2000; + lfoGain.gain.value = sweep; //LFO if (phaserLFOs[orbit] == null) { @@ -140,7 +141,7 @@ function getPhaser(orbit, t, speed = 1, depth = 0.5) { const filter = ac.createBiquadFilter(); filter.type = 'notch'; filter.gain.value = 1; - filter.frequency.value = 1000 + fOffset; + filter.frequency.value = centerFrequency + fOffset; filter.Q.value = 2 - Math.min(Math.max(depth * 2, 0), 1.9); lfoGain.connect(filter.detune); @@ -271,6 +272,8 @@ export const superdough = async (value, deadline, hapDuration) => { //phaser phaser, phaserdepth = 0.75, + phasersweep, + phasercenter, // coarse, crush, @@ -411,7 +414,6 @@ export const superdough = async (value, deadline, hapDuration) => { coarse !== undefined && chain.push(getWorklet(ac, 'coarse-processor', { coarse })); crush !== undefined && chain.push(getWorklet(ac, 'crush-processor', { crush })); shape !== undefined && chain.push(getWorklet(ac, 'shape-processor', { shape })); - // phaser !== undefined && chain.push(getWorklet(ac, 'phaser-processor', { phaser })); compressorThreshold !== undefined && chain.push( @@ -426,7 +428,7 @@ export const superdough = async (value, deadline, hapDuration) => { } // phaser if (phaser !== undefined && phaserdepth > 0) { - const phaserFX = getPhaser(orbit, t, phaser, phaserdepth); + const phaserFX = getPhaser(orbit, t, phaser, phaserdepth, phasercenter, phasersweep); chain.push(phaserFX); } From 06eb8b5be814139f5c3087e8a9f40b568ab3467b Mon Sep 17 00:00:00 2001 From: Jade Rowland Date: Tue, 7 Nov 2023 22:57:00 -0500 Subject: [PATCH 51/79] fixed doc --- packages/core/controls.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs index 4414219e..cdd1b4db 100644 --- a/packages/core/controls.mjs +++ b/packages/core/controls.mjs @@ -407,7 +407,7 @@ const generic_params = [ * The center frequency of the phaser in HZ * * @name phasercenter - * @param {number | Pattern} centerfrequency most useful values are between 0 and 1 + * @param {number | Pattern} centerfrequency in HZ * @example * run(8).scale("D:pentatonic").note().sound("sawtooth").release(0.5).phaser("2 8").phasercenter(2000) * From 791a363694f598dac01429e349a4d5da229730e2 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Wed, 8 Nov 2023 23:33:46 +0100 Subject: [PATCH 52/79] snapshots --- test/__snapshots__/examples.test.mjs.snap | 148 ++++++++++++++++++++++ 1 file changed, 148 insertions(+) diff --git a/test/__snapshots__/examples.test.mjs.snap b/test/__snapshots__/examples.test.mjs.snap index 39b9456f..9b59e78e 100644 --- a/test/__snapshots__/examples.test.mjs.snap +++ b/test/__snapshots__/examples.test.mjs.snap @@ -3306,6 +3306,154 @@ exports[`runs examples > example "perlin" example index 0 1`] = ` ] `; +exports[`runs examples > example "phaser" example index 0 1`] = ` +[ + "[ 0/1 → 1/8 | note:D3 s:sawtooth release:0.5 phaser:2 ]", + "[ 1/8 → 1/4 | note:E3 s:sawtooth release:0.5 phaser:2 ]", + "[ 1/4 → 3/8 | note:F#3 s:sawtooth release:0.5 phaser:2 ]", + "[ 3/8 → 1/2 | note:A3 s:sawtooth release:0.5 phaser:2 ]", + "[ 1/2 → 5/8 | note:B3 s:sawtooth release:0.5 phaser:8 ]", + "[ 5/8 → 3/4 | note:D4 s:sawtooth release:0.5 phaser:8 ]", + "[ 3/4 → 7/8 | note:E4 s:sawtooth release:0.5 phaser:8 ]", + "[ 7/8 → 1/1 | note:F#4 s:sawtooth release:0.5 phaser:8 ]", + "[ 1/1 → 9/8 | note:D3 s:sawtooth release:0.5 phaser:2 ]", + "[ 9/8 → 5/4 | note:E3 s:sawtooth release:0.5 phaser:2 ]", + "[ 5/4 → 11/8 | note:F#3 s:sawtooth release:0.5 phaser:2 ]", + "[ 11/8 → 3/2 | note:A3 s:sawtooth release:0.5 phaser:2 ]", + "[ 3/2 → 13/8 | note:B3 s:sawtooth release:0.5 phaser:8 ]", + "[ 13/8 → 7/4 | note:D4 s:sawtooth release:0.5 phaser:8 ]", + "[ 7/4 → 15/8 | note:E4 s:sawtooth release:0.5 phaser:8 ]", + "[ 15/8 → 2/1 | note:F#4 s:sawtooth release:0.5 phaser:8 ]", + "[ 2/1 → 17/8 | note:D3 s:sawtooth release:0.5 phaser:2 ]", + "[ 17/8 → 9/4 | note:E3 s:sawtooth release:0.5 phaser:2 ]", + "[ 9/4 → 19/8 | note:F#3 s:sawtooth release:0.5 phaser:2 ]", + "[ 19/8 → 5/2 | note:A3 s:sawtooth release:0.5 phaser:2 ]", + "[ 5/2 → 21/8 | note:B3 s:sawtooth release:0.5 phaser:8 ]", + "[ 21/8 → 11/4 | note:D4 s:sawtooth release:0.5 phaser:8 ]", + "[ 11/4 → 23/8 | note:E4 s:sawtooth release:0.5 phaser:8 ]", + "[ 23/8 → 3/1 | note:F#4 s:sawtooth release:0.5 phaser:8 ]", + "[ 3/1 → 25/8 | note:D3 s:sawtooth release:0.5 phaser:2 ]", + "[ 25/8 → 13/4 | note:E3 s:sawtooth release:0.5 phaser:2 ]", + "[ 13/4 → 27/8 | note:F#3 s:sawtooth release:0.5 phaser:2 ]", + "[ 27/8 → 7/2 | note:A3 s:sawtooth release:0.5 phaser:2 ]", + "[ 7/2 → 29/8 | note:B3 s:sawtooth release:0.5 phaser:8 ]", + "[ 29/8 → 15/4 | note:D4 s:sawtooth release:0.5 phaser:8 ]", + "[ 15/4 → 31/8 | note:E4 s:sawtooth release:0.5 phaser:8 ]", + "[ 31/8 → 4/1 | note:F#4 s:sawtooth release:0.5 phaser:8 ]", +] +`; + +exports[`runs examples > example "phasercenter" example index 0 1`] = ` +[ + "[ 0/1 → 1/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", + "[ 1/8 → 1/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", + "[ 1/4 → 3/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", + "[ 3/8 → 1/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", + "[ 1/2 → 5/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", + "[ 5/8 → 3/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", + "[ 3/4 → 7/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", + "[ 7/8 → 1/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", + "[ 1/1 → 9/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", + "[ 9/8 → 5/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", + "[ 5/4 → 11/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", + "[ 11/8 → 3/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", + "[ 3/2 → 13/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", + "[ 13/8 → 7/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", + "[ 7/4 → 15/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", + "[ 15/8 → 2/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", + "[ 2/1 → 17/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", + "[ 17/8 → 9/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", + "[ 9/4 → 19/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", + "[ 19/8 → 5/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", + "[ 5/2 → 21/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", + "[ 21/8 → 11/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", + "[ 11/4 → 23/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", + "[ 23/8 → 3/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", + "[ 3/1 → 25/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", + "[ 25/8 → 13/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", + "[ 13/4 → 27/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", + "[ 27/8 → 7/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", + "[ 7/2 → 29/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", + "[ 29/8 → 15/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", + "[ 15/4 → 31/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", + "[ 31/8 → 4/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", +] +`; + +exports[`runs examples > example "phaserdepth" example index 0 1`] = ` +[ + "[ 0/1 → 1/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", + "[ 1/8 → 1/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", + "[ 1/4 → 3/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", + "[ 3/8 → 1/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", + "[ 1/2 → 5/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", + "[ 5/8 → 3/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", + "[ 3/4 → 7/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", + "[ 7/8 → 1/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", + "[ 1/1 → 9/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", + "[ 9/8 → 5/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", + "[ 5/4 → 11/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", + "[ 11/8 → 3/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", + "[ 3/2 → 13/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", + "[ 13/8 → 7/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", + "[ 7/4 → 15/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", + "[ 15/8 → 2/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", + "[ 2/1 → 17/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", + "[ 17/8 → 9/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", + "[ 9/4 → 19/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", + "[ 19/8 → 5/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", + "[ 5/2 → 21/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", + "[ 21/8 → 11/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", + "[ 11/4 → 23/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", + "[ 23/8 → 3/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", + "[ 3/1 → 25/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", + "[ 25/8 → 13/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", + "[ 13/4 → 27/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", + "[ 27/8 → 7/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", + "[ 7/2 → 29/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", + "[ 29/8 → 15/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", + "[ 15/4 → 31/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", + "[ 31/8 → 4/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", +] +`; + +exports[`runs examples > example "phasersweep" example index 0 1`] = ` +[ + "[ 0/1 → 1/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 1/8 → 1/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 1/4 → 3/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 3/8 → 1/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 1/2 → 5/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", + "[ 5/8 → 3/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", + "[ 3/4 → 7/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", + "[ 7/8 → 1/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", + "[ 1/1 → 9/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 9/8 → 5/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 5/4 → 11/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 11/8 → 3/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 3/2 → 13/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", + "[ 13/8 → 7/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", + "[ 7/4 → 15/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", + "[ 15/8 → 2/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", + "[ 2/1 → 17/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 17/8 → 9/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 9/4 → 19/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 19/8 → 5/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 5/2 → 21/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", + "[ 21/8 → 11/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", + "[ 11/4 → 23/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", + "[ 23/8 → 3/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", + "[ 3/1 → 25/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 25/8 → 13/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 13/4 → 27/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 27/8 → 7/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 7/2 → 29/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", + "[ 29/8 → 15/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", + "[ 15/4 → 31/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", + "[ 31/8 → 4/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", +] +`; + exports[`runs examples > example "pick" example index 0 1`] = ` [ "[ 0/1 → 1/2 | note:g ]", From df636cf4f699512a0e19b7dfc37dee31ac0d5ae6 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 9 Nov 2023 08:16:17 +0100 Subject: [PATCH 53/79] phaser shortcuts --- packages/core/controls.mjs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs index cdd1b4db..871ec18d 100644 --- a/packages/core/controls.mjs +++ b/packages/core/controls.mjs @@ -390,10 +390,10 @@ const generic_params = [ * run(8).scale("D:pentatonic").note().sound("sawtooth").release(0.5).phaser("2 8") * */ - ['phaser'], + [['phaser', 'phaserdepth', 'phasercenter', 'phasersweep'], 'ph'], /** - * The frequency sweep range of the lfo for the phaser effect + * The frequency sweep range of the lfo for the phaser effect. Defaults to 2000 * * @name phasersweep * @param {number | Pattern} phasersweep most useful values are between 0 and 4000 @@ -401,10 +401,10 @@ const generic_params = [ * run(8).scale("D:pentatonic").note().sound("sawtooth").release(0.5).phaser("2 8").phasersweep(800) * */ - ['phasersweep'], + ['phasersweep', 'phs'], /** - * The center frequency of the phaser in HZ + * The center frequency of the phaser in HZ. Defaults to 1000 * * @name phasercenter * @param {number | Pattern} centerfrequency in HZ @@ -413,10 +413,10 @@ const generic_params = [ * */ - ['phasercenter'], + ['phasercenter', 'phc'], /** - * The amount the signal is affected by the phaser effect + * The amount the signal is affected by the phaser effect. Defaults to 0.75 * * @name phaserdepth * @param {number | Pattern} depth number between 0 and 1 @@ -424,7 +424,7 @@ const generic_params = [ * run(8).scale("D:pentatonic").note().sound("sawtooth").release(0.5).phaser("2 8").phasercenter(200) * */ - ['phaserdepth'], + ['phaserdepth', 'phd'], /** * choose the channel the pattern is sent to in superdirt From ac359a0e9e66b872a8bde93220351fe9d4248148 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 9 Nov 2023 08:17:16 +0100 Subject: [PATCH 54/79] doc: phaser synonyms --- packages/core/controls.mjs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs index 871ec18d..6bba4131 100644 --- a/packages/core/controls.mjs +++ b/packages/core/controls.mjs @@ -385,6 +385,7 @@ const generic_params = [ * Phaser audio effect that approximates popular guitar pedals. * * @name phaser + * @synonyms ph * @param {number | Pattern} speed speed of modulation * @example * run(8).scale("D:pentatonic").note().sound("sawtooth").release(0.5).phaser("2 8") @@ -396,6 +397,7 @@ const generic_params = [ * The frequency sweep range of the lfo for the phaser effect. Defaults to 2000 * * @name phasersweep + * @synonyms phs * @param {number | Pattern} phasersweep most useful values are between 0 and 4000 * @example * run(8).scale("D:pentatonic").note().sound("sawtooth").release(0.5).phaser("2 8").phasersweep(800) @@ -407,6 +409,7 @@ const generic_params = [ * The center frequency of the phaser in HZ. Defaults to 1000 * * @name phasercenter + * @synonyms phc * @param {number | Pattern} centerfrequency in HZ * @example * run(8).scale("D:pentatonic").note().sound("sawtooth").release(0.5).phaser("2 8").phasercenter(2000) @@ -419,6 +422,7 @@ const generic_params = [ * The amount the signal is affected by the phaser effect. Defaults to 0.75 * * @name phaserdepth + * @synonyms phd * @param {number | Pattern} depth number between 0 and 1 * @example * run(8).scale("D:pentatonic").note().sound("sawtooth").release(0.5).phaser("2 8").phasercenter(200) From 3ecb701504c662f67f8f2d3048cec7c30733d7bc Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 9 Nov 2023 08:19:04 +0100 Subject: [PATCH 55/79] add params to superdough readme --- packages/superdough/README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/superdough/README.md b/packages/superdough/README.md index 7c199deb..f32aa32d 100644 --- a/packages/superdough/README.md +++ b/packages/superdough/README.md @@ -68,7 +68,9 @@ superdough({ s: 'bd', delay: 0.5 }, 0, 1); - `shape`: distortion effect from 0 (none) to 1 (full). might get loud! - `pan`: stereo panning from 0 (left) to 1 (right) - `phaser`: sets the speed of the modulation - - `phaserdepth` + - `phaserdepth`: the amount the signal is affected by the phaser effect. + - `phasersweep`: the frequency sweep range of the lfo for the phaser effect. + - `phasercenter`: the amount the signal is affected by the phaser effect. - `vowel`: vowel filter. possible values: "a", "e", "i", "o", "u" - `delay`: delay mix - `delayfeedback`: delay feedback From 2682fd38f8e3fa21531927f424db4a72dd7c3e7d Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 9 Nov 2023 08:29:21 +0100 Subject: [PATCH 56/79] add to doc page --- packages/core/controls.mjs | 15 +- test/__snapshots__/examples.test.mjs.snap | 229 ++++++++++++---------- website/src/pages/learn/effects.mdx | 18 ++ 3 files changed, 149 insertions(+), 113 deletions(-) diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs index 6bba4131..d69b4484 100644 --- a/packages/core/controls.mjs +++ b/packages/core/controls.mjs @@ -388,7 +388,8 @@ const generic_params = [ * @synonyms ph * @param {number | Pattern} speed speed of modulation * @example - * run(8).scale("D:pentatonic").note().sound("sawtooth").release(0.5).phaser("2 8") + * n(run(8)).scale("D:pentatonic").s("sawtooth").release(0.5) + * .phaser("<1 2 4 8>") * */ [['phaser', 'phaserdepth', 'phasercenter', 'phasersweep'], 'ph'], @@ -400,7 +401,8 @@ const generic_params = [ * @synonyms phs * @param {number | Pattern} phasersweep most useful values are between 0 and 4000 * @example - * run(8).scale("D:pentatonic").note().sound("sawtooth").release(0.5).phaser("2 8").phasersweep(800) + * n(run(8)).scale("D:pentatonic").s("sawtooth").release(0.5) + * .phaser(2).phasersweep("<800 2000 4000>") * */ ['phasersweep', 'phs'], @@ -412,7 +414,8 @@ const generic_params = [ * @synonyms phc * @param {number | Pattern} centerfrequency in HZ * @example - * run(8).scale("D:pentatonic").note().sound("sawtooth").release(0.5).phaser("2 8").phasercenter(2000) + * n(run(8)).scale("D:pentatonic").s("sawtooth").release(0.5) + * .phaser(2).phasercenter("<800 2000 4000>") * */ @@ -425,7 +428,8 @@ const generic_params = [ * @synonyms phd * @param {number | Pattern} depth number between 0 and 1 * @example - * run(8).scale("D:pentatonic").note().sound("sawtooth").release(0.5).phaser("2 8").phasercenter(200) + * n(run(8)).scale("D:pentatonic").s("sawtooth").release(0.5) + * .phaser(2).phaserdepth("<0 .5 .75 1>") * */ ['phaserdepth', 'phd'], @@ -1081,7 +1085,8 @@ const generic_params = [ */ ['roomfade', 'rfade'], /** - * Sets the sample to use as an impulse response for the reverb. * * @name iresponse + * Sets the sample to use as an impulse response for the reverb. + * @name iresponse * @param {string | Pattern} sample to use as an impulse response * @synonyms ir * @example diff --git a/test/__snapshots__/examples.test.mjs.snap b/test/__snapshots__/examples.test.mjs.snap index 9b59e78e..8c49000a 100644 --- a/test/__snapshots__/examples.test.mjs.snap +++ b/test/__snapshots__/examples.test.mjs.snap @@ -2439,6 +2439,19 @@ exports[`runs examples > example "irand" example index 0 1`] = ` ] `; +exports[`runs examples > example "iresponse" example index 0 1`] = ` +[ + "[ 0/1 → 1/2 | s:bd room:0.8 ir:shaker_large i:0 ]", + "[ 1/2 → 1/1 | s:sd room:0.8 ir:shaker_large i:0 ]", + "[ 1/1 → 3/2 | s:bd room:0.8 ir:shaker_large i:2 ]", + "[ 3/2 → 2/1 | s:sd room:0.8 ir:shaker_large i:2 ]", + "[ 2/1 → 5/2 | s:bd room:0.8 ir:shaker_large i:0 ]", + "[ 5/2 → 3/1 | s:sd room:0.8 ir:shaker_large i:0 ]", + "[ 3/1 → 7/2 | s:bd room:0.8 ir:shaker_large i:2 ]", + "[ 7/2 → 4/1 | s:sd room:0.8 ir:shaker_large i:2 ]", +] +`; + exports[`runs examples > example "iter" example index 0 1`] = ` [ "[ 0/1 → 1/4 | note:A3 ]", @@ -3308,34 +3321,34 @@ exports[`runs examples > example "perlin" example index 0 1`] = ` exports[`runs examples > example "phaser" example index 0 1`] = ` [ - "[ 0/1 → 1/8 | note:D3 s:sawtooth release:0.5 phaser:2 ]", - "[ 1/8 → 1/4 | note:E3 s:sawtooth release:0.5 phaser:2 ]", - "[ 1/4 → 3/8 | note:F#3 s:sawtooth release:0.5 phaser:2 ]", - "[ 3/8 → 1/2 | note:A3 s:sawtooth release:0.5 phaser:2 ]", - "[ 1/2 → 5/8 | note:B3 s:sawtooth release:0.5 phaser:8 ]", - "[ 5/8 → 3/4 | note:D4 s:sawtooth release:0.5 phaser:8 ]", - "[ 3/4 → 7/8 | note:E4 s:sawtooth release:0.5 phaser:8 ]", - "[ 7/8 → 1/1 | note:F#4 s:sawtooth release:0.5 phaser:8 ]", + "[ 0/1 → 1/8 | note:D3 s:sawtooth release:0.5 phaser:1 ]", + "[ 1/8 → 1/4 | note:E3 s:sawtooth release:0.5 phaser:1 ]", + "[ 1/4 → 3/8 | note:F#3 s:sawtooth release:0.5 phaser:1 ]", + "[ 3/8 → 1/2 | note:A3 s:sawtooth release:0.5 phaser:1 ]", + "[ 1/2 → 5/8 | note:B3 s:sawtooth release:0.5 phaser:1 ]", + "[ 5/8 → 3/4 | note:D4 s:sawtooth release:0.5 phaser:1 ]", + "[ 3/4 → 7/8 | note:E4 s:sawtooth release:0.5 phaser:1 ]", + "[ 7/8 → 1/1 | note:F#4 s:sawtooth release:0.5 phaser:1 ]", "[ 1/1 → 9/8 | note:D3 s:sawtooth release:0.5 phaser:2 ]", "[ 9/8 → 5/4 | note:E3 s:sawtooth release:0.5 phaser:2 ]", "[ 5/4 → 11/8 | note:F#3 s:sawtooth release:0.5 phaser:2 ]", "[ 11/8 → 3/2 | note:A3 s:sawtooth release:0.5 phaser:2 ]", - "[ 3/2 → 13/8 | note:B3 s:sawtooth release:0.5 phaser:8 ]", - "[ 13/8 → 7/4 | note:D4 s:sawtooth release:0.5 phaser:8 ]", - "[ 7/4 → 15/8 | note:E4 s:sawtooth release:0.5 phaser:8 ]", - "[ 15/8 → 2/1 | note:F#4 s:sawtooth release:0.5 phaser:8 ]", - "[ 2/1 → 17/8 | note:D3 s:sawtooth release:0.5 phaser:2 ]", - "[ 17/8 → 9/4 | note:E3 s:sawtooth release:0.5 phaser:2 ]", - "[ 9/4 → 19/8 | note:F#3 s:sawtooth release:0.5 phaser:2 ]", - "[ 19/8 → 5/2 | note:A3 s:sawtooth release:0.5 phaser:2 ]", - "[ 5/2 → 21/8 | note:B3 s:sawtooth release:0.5 phaser:8 ]", - "[ 21/8 → 11/4 | note:D4 s:sawtooth release:0.5 phaser:8 ]", - "[ 11/4 → 23/8 | note:E4 s:sawtooth release:0.5 phaser:8 ]", - "[ 23/8 → 3/1 | note:F#4 s:sawtooth release:0.5 phaser:8 ]", - "[ 3/1 → 25/8 | note:D3 s:sawtooth release:0.5 phaser:2 ]", - "[ 25/8 → 13/4 | note:E3 s:sawtooth release:0.5 phaser:2 ]", - "[ 13/4 → 27/8 | note:F#3 s:sawtooth release:0.5 phaser:2 ]", - "[ 27/8 → 7/2 | note:A3 s:sawtooth release:0.5 phaser:2 ]", + "[ 3/2 → 13/8 | note:B3 s:sawtooth release:0.5 phaser:2 ]", + "[ 13/8 → 7/4 | note:D4 s:sawtooth release:0.5 phaser:2 ]", + "[ 7/4 → 15/8 | note:E4 s:sawtooth release:0.5 phaser:2 ]", + "[ 15/8 → 2/1 | note:F#4 s:sawtooth release:0.5 phaser:2 ]", + "[ 2/1 → 17/8 | note:D3 s:sawtooth release:0.5 phaser:4 ]", + "[ 17/8 → 9/4 | note:E3 s:sawtooth release:0.5 phaser:4 ]", + "[ 9/4 → 19/8 | note:F#3 s:sawtooth release:0.5 phaser:4 ]", + "[ 19/8 → 5/2 | note:A3 s:sawtooth release:0.5 phaser:4 ]", + "[ 5/2 → 21/8 | note:B3 s:sawtooth release:0.5 phaser:4 ]", + "[ 21/8 → 11/4 | note:D4 s:sawtooth release:0.5 phaser:4 ]", + "[ 11/4 → 23/8 | note:E4 s:sawtooth release:0.5 phaser:4 ]", + "[ 23/8 → 3/1 | note:F#4 s:sawtooth release:0.5 phaser:4 ]", + "[ 3/1 → 25/8 | note:D3 s:sawtooth release:0.5 phaser:8 ]", + "[ 25/8 → 13/4 | note:E3 s:sawtooth release:0.5 phaser:8 ]", + "[ 13/4 → 27/8 | note:F#3 s:sawtooth release:0.5 phaser:8 ]", + "[ 27/8 → 7/2 | note:A3 s:sawtooth release:0.5 phaser:8 ]", "[ 7/2 → 29/8 | note:B3 s:sawtooth release:0.5 phaser:8 ]", "[ 29/8 → 15/4 | note:D4 s:sawtooth release:0.5 phaser:8 ]", "[ 15/4 → 31/8 | note:E4 s:sawtooth release:0.5 phaser:8 ]", @@ -3345,75 +3358,75 @@ exports[`runs examples > example "phaser" example index 0 1`] = ` exports[`runs examples > example "phasercenter" example index 0 1`] = ` [ - "[ 0/1 → 1/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", - "[ 1/8 → 1/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", - "[ 1/4 → 3/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", - "[ 3/8 → 1/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", - "[ 1/2 → 5/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", - "[ 5/8 → 3/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", - "[ 3/4 → 7/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", - "[ 7/8 → 1/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", + "[ 0/1 → 1/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", + "[ 1/8 → 1/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", + "[ 1/4 → 3/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", + "[ 3/8 → 1/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", + "[ 1/2 → 5/8 | note:B3 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", + "[ 5/8 → 3/4 | note:D4 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", + "[ 3/4 → 7/8 | note:E4 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", + "[ 7/8 → 1/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", "[ 1/1 → 9/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", "[ 9/8 → 5/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", "[ 5/4 → 11/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", "[ 11/8 → 3/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", - "[ 3/2 → 13/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", - "[ 13/8 → 7/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", - "[ 7/4 → 15/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", - "[ 15/8 → 2/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", - "[ 2/1 → 17/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", - "[ 17/8 → 9/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", - "[ 9/4 → 19/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", - "[ 19/8 → 5/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", - "[ 5/2 → 21/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", - "[ 21/8 → 11/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", - "[ 11/4 → 23/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", - "[ 23/8 → 3/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", - "[ 3/1 → 25/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", - "[ 25/8 → 13/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", - "[ 13/4 → 27/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", - "[ 27/8 → 7/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", - "[ 7/2 → 29/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", - "[ 29/8 → 15/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", - "[ 15/4 → 31/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", - "[ 31/8 → 4/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasercenter:2000 ]", + "[ 3/2 → 13/8 | note:B3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", + "[ 13/8 → 7/4 | note:D4 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", + "[ 7/4 → 15/8 | note:E4 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", + "[ 15/8 → 2/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", + "[ 2/1 → 17/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasercenter:4000 ]", + "[ 17/8 → 9/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasercenter:4000 ]", + "[ 9/4 → 19/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasercenter:4000 ]", + "[ 19/8 → 5/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasercenter:4000 ]", + "[ 5/2 → 21/8 | note:B3 s:sawtooth release:0.5 phaser:2 phasercenter:4000 ]", + "[ 21/8 → 11/4 | note:D4 s:sawtooth release:0.5 phaser:2 phasercenter:4000 ]", + "[ 11/4 → 23/8 | note:E4 s:sawtooth release:0.5 phaser:2 phasercenter:4000 ]", + "[ 23/8 → 3/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phasercenter:4000 ]", + "[ 3/1 → 25/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", + "[ 25/8 → 13/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", + "[ 13/4 → 27/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", + "[ 27/8 → 7/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", + "[ 7/2 → 29/8 | note:B3 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", + "[ 29/8 → 15/4 | note:D4 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", + "[ 15/4 → 31/8 | note:E4 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", + "[ 31/8 → 4/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", ] `; exports[`runs examples > example "phaserdepth" example index 0 1`] = ` [ - "[ 0/1 → 1/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", - "[ 1/8 → 1/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", - "[ 1/4 → 3/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", - "[ 3/8 → 1/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", - "[ 1/2 → 5/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", - "[ 5/8 → 3/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", - "[ 3/4 → 7/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", - "[ 7/8 → 1/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", - "[ 1/1 → 9/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", - "[ 9/8 → 5/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", - "[ 5/4 → 11/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", - "[ 11/8 → 3/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", - "[ 3/2 → 13/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", - "[ 13/8 → 7/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", - "[ 7/4 → 15/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", - "[ 15/8 → 2/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", - "[ 2/1 → 17/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", - "[ 17/8 → 9/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", - "[ 9/4 → 19/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", - "[ 19/8 → 5/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", - "[ 5/2 → 21/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", - "[ 21/8 → 11/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", - "[ 11/4 → 23/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", - "[ 23/8 → 3/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", - "[ 3/1 → 25/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", - "[ 25/8 → 13/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", - "[ 13/4 → 27/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", - "[ 27/8 → 7/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasercenter:200 ]", - "[ 7/2 → 29/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", - "[ 29/8 → 15/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", - "[ 15/4 → 31/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", - "[ 31/8 → 4/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasercenter:200 ]", + "[ 0/1 → 1/8 | note:D3 s:sawtooth release:0.5 phaser:2 phaserdepth:0 ]", + "[ 1/8 → 1/4 | note:E3 s:sawtooth release:0.5 phaser:2 phaserdepth:0 ]", + "[ 1/4 → 3/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phaserdepth:0 ]", + "[ 3/8 → 1/2 | note:A3 s:sawtooth release:0.5 phaser:2 phaserdepth:0 ]", + "[ 1/2 → 5/8 | note:B3 s:sawtooth release:0.5 phaser:2 phaserdepth:0 ]", + "[ 5/8 → 3/4 | note:D4 s:sawtooth release:0.5 phaser:2 phaserdepth:0 ]", + "[ 3/4 → 7/8 | note:E4 s:sawtooth release:0.5 phaser:2 phaserdepth:0 ]", + "[ 7/8 → 1/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phaserdepth:0 ]", + "[ 1/1 → 9/8 | note:D3 s:sawtooth release:0.5 phaser:2 phaserdepth:0.5 ]", + "[ 9/8 → 5/4 | note:E3 s:sawtooth release:0.5 phaser:2 phaserdepth:0.5 ]", + "[ 5/4 → 11/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phaserdepth:0.5 ]", + "[ 11/8 → 3/2 | note:A3 s:sawtooth release:0.5 phaser:2 phaserdepth:0.5 ]", + "[ 3/2 → 13/8 | note:B3 s:sawtooth release:0.5 phaser:2 phaserdepth:0.5 ]", + "[ 13/8 → 7/4 | note:D4 s:sawtooth release:0.5 phaser:2 phaserdepth:0.5 ]", + "[ 7/4 → 15/8 | note:E4 s:sawtooth release:0.5 phaser:2 phaserdepth:0.5 ]", + "[ 15/8 → 2/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phaserdepth:0.5 ]", + "[ 2/1 → 17/8 | note:D3 s:sawtooth release:0.5 phaser:2 phaserdepth:0.75 ]", + "[ 17/8 → 9/4 | note:E3 s:sawtooth release:0.5 phaser:2 phaserdepth:0.75 ]", + "[ 9/4 → 19/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phaserdepth:0.75 ]", + "[ 19/8 → 5/2 | note:A3 s:sawtooth release:0.5 phaser:2 phaserdepth:0.75 ]", + "[ 5/2 → 21/8 | note:B3 s:sawtooth release:0.5 phaser:2 phaserdepth:0.75 ]", + "[ 21/8 → 11/4 | note:D4 s:sawtooth release:0.5 phaser:2 phaserdepth:0.75 ]", + "[ 11/4 → 23/8 | note:E4 s:sawtooth release:0.5 phaser:2 phaserdepth:0.75 ]", + "[ 23/8 → 3/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phaserdepth:0.75 ]", + "[ 3/1 → 25/8 | note:D3 s:sawtooth release:0.5 phaser:2 phaserdepth:1 ]", + "[ 25/8 → 13/4 | note:E3 s:sawtooth release:0.5 phaser:2 phaserdepth:1 ]", + "[ 13/4 → 27/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phaserdepth:1 ]", + "[ 27/8 → 7/2 | note:A3 s:sawtooth release:0.5 phaser:2 phaserdepth:1 ]", + "[ 7/2 → 29/8 | note:B3 s:sawtooth release:0.5 phaser:2 phaserdepth:1 ]", + "[ 29/8 → 15/4 | note:D4 s:sawtooth release:0.5 phaser:2 phaserdepth:1 ]", + "[ 15/4 → 31/8 | note:E4 s:sawtooth release:0.5 phaser:2 phaserdepth:1 ]", + "[ 31/8 → 4/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phaserdepth:1 ]", ] `; @@ -3423,34 +3436,34 @@ exports[`runs examples > example "phasersweep" example index 0 1`] = ` "[ 1/8 → 1/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", "[ 1/4 → 3/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", "[ 3/8 → 1/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 1/2 → 5/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", - "[ 5/8 → 3/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", - "[ 3/4 → 7/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", - "[ 7/8 → 1/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", - "[ 1/1 → 9/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 9/8 → 5/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 5/4 → 11/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 11/8 → 3/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 3/2 → 13/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", - "[ 13/8 → 7/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", - "[ 7/4 → 15/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", - "[ 15/8 → 2/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", - "[ 2/1 → 17/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 17/8 → 9/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 9/4 → 19/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 19/8 → 5/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 5/2 → 21/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", - "[ 21/8 → 11/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", - "[ 11/4 → 23/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", - "[ 23/8 → 3/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", + "[ 1/2 → 5/8 | note:B3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 5/8 → 3/4 | note:D4 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 3/4 → 7/8 | note:E4 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 7/8 → 1/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 1/1 → 9/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasersweep:2000 ]", + "[ 9/8 → 5/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasersweep:2000 ]", + "[ 5/4 → 11/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasersweep:2000 ]", + "[ 11/8 → 3/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasersweep:2000 ]", + "[ 3/2 → 13/8 | note:B3 s:sawtooth release:0.5 phaser:2 phasersweep:2000 ]", + "[ 13/8 → 7/4 | note:D4 s:sawtooth release:0.5 phaser:2 phasersweep:2000 ]", + "[ 7/4 → 15/8 | note:E4 s:sawtooth release:0.5 phaser:2 phasersweep:2000 ]", + "[ 15/8 → 2/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phasersweep:2000 ]", + "[ 2/1 → 17/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasersweep:4000 ]", + "[ 17/8 → 9/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasersweep:4000 ]", + "[ 9/4 → 19/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasersweep:4000 ]", + "[ 19/8 → 5/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasersweep:4000 ]", + "[ 5/2 → 21/8 | note:B3 s:sawtooth release:0.5 phaser:2 phasersweep:4000 ]", + "[ 21/8 → 11/4 | note:D4 s:sawtooth release:0.5 phaser:2 phasersweep:4000 ]", + "[ 11/4 → 23/8 | note:E4 s:sawtooth release:0.5 phaser:2 phasersweep:4000 ]", + "[ 23/8 → 3/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phasersweep:4000 ]", "[ 3/1 → 25/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", "[ 25/8 → 13/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", "[ 13/4 → 27/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", "[ 27/8 → 7/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 7/2 → 29/8 | note:B3 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", - "[ 29/8 → 15/4 | note:D4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", - "[ 15/4 → 31/8 | note:E4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", - "[ 31/8 → 4/1 | note:F#4 s:sawtooth release:0.5 phaser:8 phasersweep:800 ]", + "[ 7/2 → 29/8 | note:B3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 29/8 → 15/4 | note:D4 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 15/4 → 31/8 | note:E4 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 31/8 → 4/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", ] `; diff --git a/website/src/pages/learn/effects.mdx b/website/src/pages/learn/effects.mdx index b1323a8e..a3ae91d7 100644 --- a/website/src/pages/learn/effects.mdx +++ b/website/src/pages/learn/effects.mdx @@ -240,3 +240,21 @@ global effects use the same chain for all events of the same orbit: Next, we'll look at strudel's support for [Csound](/learn/csound). + +## Phaser + +### phaser + + + +### phaserdepth + + + +### phasercenter + + + +### phasersweep + + From 858a02634e29e72ef35905c50dfeccc85e43d9ee Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 9 Nov 2023 08:40:21 +0100 Subject: [PATCH 57/79] dedupe / move supertdirt phaser controls --- packages/core/controls.mjs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs index d69b4484..8779c4a9 100644 --- a/packages/core/controls.mjs +++ b/packages/core/controls.mjs @@ -381,6 +381,8 @@ const generic_params = [ */ ['coarse'], + ['phaserrate', 'phasr'], // superdirt only + /** * Phaser audio effect that approximates popular guitar pedals. * @@ -432,7 +434,7 @@ const generic_params = [ * .phaser(2).phaserdepth("<0 .5 .75 1>") * */ - ['phaserdepth', 'phd'], + ['phaserdepth', 'phd', 'phasdp'], // also a superdirt control /** * choose the channel the pattern is sent to in superdirt @@ -1224,9 +1226,6 @@ const generic_params = [ */ ['tremolodepth', 'tremdp'], ['tremolorate', 'tremr'], - // TODO: doesn't seem to do anything - ['phasdp'], - ['phaserrate', 'phasr'], ['fshift'], ['fshiftnote'], From 85835087ba0c55ac6e028de6c76812c20bb26018 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 9 Nov 2023 08:48:23 +0100 Subject: [PATCH 58/79] format --- packages/superdough/sampler.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/superdough/sampler.mjs b/packages/superdough/sampler.mjs index ed73eeb8..d278913a 100644 --- a/packages/superdough/sampler.mjs +++ b/packages/superdough/sampler.mjs @@ -298,7 +298,7 @@ export async function onTriggerSample(t, value, onended, bank, resolveUrl) { bufferSource.connect(envelope); const out = ac.createGain(); // we need a separate gain for the cutgroups because firefox... envelope.connect(out); - bufferSource.onended = function() { + bufferSource.onended = function () { bufferSource.disconnect(); envelope.disconnect(); out.disconnect(); From 7c8a8b8b7044b8a3e422717bd6a928486940dbb3 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 9 Nov 2023 08:59:23 +0100 Subject: [PATCH 59/79] simplify --- packages/superdough/sampler.mjs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/superdough/sampler.mjs b/packages/superdough/sampler.mjs index d278913a..7127d891 100644 --- a/packages/superdough/sampler.mjs +++ b/packages/superdough/sampler.mjs @@ -57,19 +57,16 @@ export const getSampleBufferSource = async (s, n, note, speed, freq, vib, vibmod const bufferSource = ac.createBufferSource(); bufferSource.buffer = buffer; const playbackRate = 1.0 * Math.pow(2, transpose / 12); + bufferSource.playbackRate.value = playbackRate; if (vib > 0) { let vibrato_oscillator = getAudioContext().createOscillator(); vibrato_oscillator.frequency.value = vib; const gain = getAudioContext().createGain(); // Vibmod is the amount of vibrato, in semitones - bufferSource.playbackRate.value = Math.pow(2, transpose / 12); gain.gain.value = vibmod / 4; vibrato_oscillator.connect(gain); gain.connect(bufferSource.playbackRate); vibrato_oscillator.start(0); - } else { - bufferSource.playbackRate.value = Math.pow(2, transpose / 12); - bufferSource.playbackRate.value = playbackRate; } return bufferSource; }; From 0052d349d925275e5f14d89bf49e01c4629b952f Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 9 Nov 2023 09:06:50 +0100 Subject: [PATCH 60/79] refactor: move vibrato up + cleanup oscillator --- packages/superdough/sampler.mjs | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/packages/superdough/sampler.mjs b/packages/superdough/sampler.mjs index 7127d891..6da8b1d1 100644 --- a/packages/superdough/sampler.mjs +++ b/packages/superdough/sampler.mjs @@ -22,7 +22,7 @@ function humanFileSize(bytes, si) { return bytes.toFixed(1) + ' ' + units[u]; } -export const getSampleBufferSource = async (s, n, note, speed, freq, vib, vibmod, bank, resolveUrl) => { +export const getSampleBufferSource = async (s, n, note, speed, freq, bank, resolveUrl) => { let transpose = 0; if (freq !== undefined && note !== undefined) { logger('[sampler] hap has note and freq. ignoring note', 'warning'); @@ -58,16 +58,6 @@ export const getSampleBufferSource = async (s, n, note, speed, freq, vib, vibmod bufferSource.buffer = buffer; const playbackRate = 1.0 * Math.pow(2, transpose / 12); bufferSource.playbackRate.value = playbackRate; - if (vib > 0) { - let vibrato_oscillator = getAudioContext().createOscillator(); - vibrato_oscillator.frequency.value = vib; - const gain = getAudioContext().createGain(); - // Vibmod is the amount of vibrato, in semitones - gain.gain.value = vibmod / 4; - vibrato_oscillator.connect(gain); - gain.connect(bufferSource.playbackRate); - vibrato_oscillator.start(0); - } return bufferSource; }; @@ -264,7 +254,20 @@ export async function onTriggerSample(t, value, onended, bank, resolveUrl) { //const soundfont = getSoundfontKey(s); const time = t + nudge; - const bufferSource = await getSampleBufferSource(s, n, note, speed, freq, vib, vibmod, bank, resolveUrl); + const bufferSource = await getSampleBufferSource(s, n, note, speed, freq, bank, resolveUrl); + + // vibrato + let vibratoOscillator; + if (vib > 0) { + vibratoOscillator = getAudioContext().createOscillator(); + vibratoOscillator.frequency.value = vib; + const gain = getAudioContext().createGain(); + // Vibmod is the amount of vibrato, in semitones + gain.gain.value = vibmod * 100; + vibratoOscillator.connect(gain); + gain.connect(bufferSource.detune); + vibratoOscillator.start(0); + } // asny stuff above took too long? if (ac.currentTime > t) { @@ -297,6 +300,7 @@ export async function onTriggerSample(t, value, onended, bank, resolveUrl) { envelope.connect(out); bufferSource.onended = function () { bufferSource.disconnect(); + vibratoOscillator.stop(); envelope.disconnect(); out.disconnect(); onended(); From 2a09f9ef0b51a8006efd745275eb48ac128516ba Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 9 Nov 2023 09:21:40 +0100 Subject: [PATCH 61/79] fix: sampler broke without vibrato --- packages/superdough/sampler.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/superdough/sampler.mjs b/packages/superdough/sampler.mjs index 6da8b1d1..b8f10d5d 100644 --- a/packages/superdough/sampler.mjs +++ b/packages/superdough/sampler.mjs @@ -300,7 +300,7 @@ export async function onTriggerSample(t, value, onended, bank, resolveUrl) { envelope.connect(out); bufferSource.onended = function () { bufferSource.disconnect(); - vibratoOscillator.stop(); + vibratoOscillator?.stop(); envelope.disconnect(); out.disconnect(); onended(); From d25851ac1761064d646188dacc1ef65ad9301772 Mon Sep 17 00:00:00 2001 From: Alex McLean Date: Fri, 10 Nov 2023 11:17:35 +0000 Subject: [PATCH 62/79] support multiple named serial connections, change default baudrate to 115200 (#551) --- packages/serial/serial.mjs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/serial/serial.mjs b/packages/serial/serial.mjs index c4e52d4d..652b6054 100644 --- a/packages/serial/serial.mjs +++ b/packages/serial/serial.mjs @@ -6,23 +6,23 @@ This program is free software: you can redistribute it and/or modify it under th import { Pattern, isPattern } from '@strudel.cycles/core'; -var writeMessage; +var writeMessagers = {}; var choosing = false; -export async function getWriter(br = 38400) { +export async function getWriter(name, br) { if (choosing) { return; } choosing = true; - if (writeMessage) { - return writeMessage; + if (name in writeMessagers) { + return writeMessagers[name]; } if ('serial' in navigator) { const port = await navigator.serial.requestPort(); await port.open({ baudRate: br }); const encoder = new TextEncoder(); const writer = port.writable.getWriter(); - writeMessage = function (message, chk) { + writeMessagers[name] = function (message, chk) { const encoded = encoder.encode(message); if (!chk) { writer.write(encoded); @@ -63,10 +63,10 @@ function crc16(data) { return crc & 0xffff; } -Pattern.prototype.serial = function (br = 38400, sendcrc = false, singlecharids = false) { +Pattern.prototype.serial = function (br = 115200, sendcrc = false, singlecharids = false, name = 'default') { return this.withHap((hap) => { - if (!writeMessage) { - getWriter(br); + if (!(name in writeMessagers)) { + getWriter(name, br); } const onTrigger = (time, hap, currentTime) => { var message = ''; @@ -108,7 +108,7 @@ Pattern.prototype.serial = function (br = 38400, sendcrc = false, singlecharids const offset = (time - currentTime + latency) * 1000; window.setTimeout(function () { - writeMessage(message, chk); + writeMessagers[name](message, chk); }, offset); }; return hap.setContext({ ...hap.context, onTrigger, dominantTrigger: true }); From 1b0427e9434e7045445411be20199fe63081271b Mon Sep 17 00:00:00 2001 From: "Alexandre G.-Raymond" Date: Sat, 11 Nov 2023 16:23:58 +0100 Subject: [PATCH 63/79] Document wordfall --- packages/core/pianoroll.mjs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/core/pianoroll.mjs b/packages/core/pianoroll.mjs index c10460a4..254dd94a 100644 --- a/packages/core/pianoroll.mjs +++ b/packages/core/pianoroll.mjs @@ -262,6 +262,12 @@ Pattern.prototype.punchcard = function (options) { ); }; +/** + * Displays a vertical pianoroll with event labels. + * Supports all the same options as pianoroll. + * + * @name wordfall + */ Pattern.prototype.wordfall = function (options) { return this.punchcard({ vertical: 1, labels: 1, stroke: 0, fillActive: 1, active: 'white', ...options }); }; From 2d6654b234509a683bb4ee3d4ad9525f864397ae Mon Sep 17 00:00:00 2001 From: "Alexandre G.-Raymond" Date: Sat, 11 Nov 2023 16:24:09 +0100 Subject: [PATCH 64/79] Document slider --- packages/codemirror/slider.mjs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/codemirror/slider.mjs b/packages/codemirror/slider.mjs index 519e5610..a22f4d2a 100644 --- a/packages/codemirror/slider.mjs +++ b/packages/codemirror/slider.mjs @@ -111,6 +111,15 @@ export const sliderPlugin = ViewPlugin.fromClass( }, ); +/** + * Displays a slider widget to allow the user manipulate a value + * + * @name slider + * @param {number} value Initial value + * @param {number} min Minimum value + * @param {number} max Maximum value + * @param {number} step Step size + */ export let slider = (value) => { console.warn('slider will only work when the transpiler is used... passing value as is'); return pure(value); From e52e257d9b533e2005e97772d75178393bd36a76 Mon Sep 17 00:00:00 2001 From: "Alexandre G.-Raymond" Date: Sat, 11 Nov 2023 17:03:21 +0100 Subject: [PATCH 65/79] Document euclidLegatoRot --- packages/core/euclid.mjs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/core/euclid.mjs b/packages/core/euclid.mjs index 29539cf9..e6240920 100644 --- a/packages/core/euclid.mjs +++ b/packages/core/euclid.mjs @@ -145,6 +145,8 @@ export const { euclidrot, euclidRot } = register(['euclidrot', 'euclidRot'], fun * so there will be no gaps. * @name euclidLegato * @memberof Pattern + * @param {number} pulses the number of onsets / beats + * @param {number} steps the number of steps to fill * @example * n("g2").decay(.1).sustain(.3).euclidLegato(3,8) */ @@ -166,6 +168,18 @@ export const euclidLegato = register(['euclidLegato'], function (pulses, steps, return _euclidLegato(pulses, steps, 0, pat); }); +/** + * Similar to `euclid`, but each pulse is held until the next pulse, + * so there will be no gaps, and has an additional parameter for 'rotating' + * the resulting sequence + * @name euclidLegatoRot + * @memberof Pattern + * @param {number} pulses the number of onsets / beats + * @param {number} steps the number of steps to fill + * @param {number} rotation offset in steps + * @example + * note("c3").euclidLegatoRot(3,5,2) + */ export const euclidLegatoRot = register(['euclidLegatoRot'], function (pulses, steps, rotation, pat) { return _euclidLegato(pulses, steps, rotation, pat); }); From 8a7ff9e01d329b2b838a045e78f306690cec450a Mon Sep 17 00:00:00 2001 From: "Alexandre G.-Raymond" Date: Sat, 11 Nov 2023 17:24:18 +0100 Subject: [PATCH 66/79] Add snapshot for euclidLegatoRot --- test/__snapshots__/examples.test.mjs.snap | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/__snapshots__/examples.test.mjs.snap b/test/__snapshots__/examples.test.mjs.snap index d02acdef..446e8d2d 100644 --- a/test/__snapshots__/examples.test.mjs.snap +++ b/test/__snapshots__/examples.test.mjs.snap @@ -1798,6 +1798,23 @@ exports[`runs examples > example "euclidLegato" example index 0 1`] = ` ] `; +exports[`runs examples > example "euclidLegatoRot" example index 0 1`] = ` +[ + "[ 0/1 → 1/4 | note:c3 ]", + "[ 1/4 → 3/4 | note:c3 ]", + "[ 3/4 → 1/1 | note:c3 ]", + "[ 1/1 → 5/4 | note:c3 ]", + "[ 5/4 → 7/4 | note:c3 ]", + "[ 7/4 → 2/1 | note:c3 ]", + "[ 2/1 → 9/4 | note:c3 ]", + "[ 9/4 → 11/4 | note:c3 ]", + "[ 11/4 → 3/1 | note:c3 ]", + "[ 3/1 → 13/4 | note:c3 ]", + "[ 13/4 → 15/4 | note:c3 ]", + "[ 15/4 → 4/1 | note:c3 ]", +] +`; + exports[`runs examples > example "euclidRot" example index 0 1`] = ` [ "[ 3/16 → 1/4 | note:c3 ]", From ff0af15ac7617692837d03db00fcfd4a184f0883 Mon Sep 17 00:00:00 2001 From: Kaspars Date: Mon, 13 Nov 2023 00:06:01 +0100 Subject: [PATCH 67/79] remove unwanted cm6 outline for strudelTheme --- packages/react/src/themes/strudel-theme.js | 1 + website/src/repl/themes.mjs | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/react/src/themes/strudel-theme.js b/packages/react/src/themes/strudel-theme.js index 4ae31060..4d60cbba 100644 --- a/packages/react/src/themes/strudel-theme.js +++ b/packages/react/src/themes/strudel-theme.js @@ -13,6 +13,7 @@ export default createTheme({ gutterBackground: 'transparent', // gutterForeground: '#8a919966', gutterForeground: '#8a919966', + customStyle: '.cm-focused { outline: none !important }', }, styles: [ { tag: t.keyword, color: '#c792ea' }, diff --git a/website/src/repl/themes.mjs b/website/src/repl/themes.mjs index bee95fd1..a7f989cd 100644 --- a/website/src/repl/themes.mjs +++ b/website/src/repl/themes.mjs @@ -93,6 +93,7 @@ export const settings = { gutterBackground: 'transparent', // gutterForeground: '#8a919966', gutterForeground: '#8a919966', + customStyle: '.cm-focused { outline: none !important }', }, bluescreen: bluescreenSettings, blackscreen: blackscreenSettings, From 7f1919ebc649e2e7d57d329b7a839fe1311bac9d Mon Sep 17 00:00:00 2001 From: Kaspars Date: Tue, 14 Nov 2023 11:16:51 +0100 Subject: [PATCH 68/79] move fix to Repl.css --- packages/react/src/themes/strudel-theme.js | 1 - website/src/repl/Repl.css | 4 ++++ website/src/repl/themes.mjs | 1 - 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/react/src/themes/strudel-theme.js b/packages/react/src/themes/strudel-theme.js index 4d60cbba..4ae31060 100644 --- a/packages/react/src/themes/strudel-theme.js +++ b/packages/react/src/themes/strudel-theme.js @@ -13,7 +13,6 @@ export default createTheme({ gutterBackground: 'transparent', // gutterForeground: '#8a919966', gutterForeground: '#8a919966', - customStyle: '.cm-focused { outline: none !important }', }, styles: [ { tag: t.keyword, color: '#c792ea' }, diff --git a/website/src/repl/Repl.css b/website/src/repl/Repl.css index 0400db7a..4fbebb29 100644 --- a/website/src/repl/Repl.css +++ b/website/src/repl/Repl.css @@ -57,3 +57,7 @@ #code .cm-foldGutter { display: none !important; } + +#code .cm-focused { + outline: none; +} \ No newline at end of file diff --git a/website/src/repl/themes.mjs b/website/src/repl/themes.mjs index a7f989cd..bee95fd1 100644 --- a/website/src/repl/themes.mjs +++ b/website/src/repl/themes.mjs @@ -93,7 +93,6 @@ export const settings = { gutterBackground: 'transparent', // gutterForeground: '#8a919966', gutterForeground: '#8a919966', - customStyle: '.cm-focused { outline: none !important }', }, bluescreen: bluescreenSettings, blackscreen: blackscreenSettings, From 8d5ef45e2b28867d7356a281b4a0363a970befa7 Mon Sep 17 00:00:00 2001 From: Kaspars Date: Wed, 15 Nov 2023 19:22:52 +0100 Subject: [PATCH 69/79] fix codeformat --- website/src/repl/Repl.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/repl/Repl.css b/website/src/repl/Repl.css index 4fbebb29..9c4a440d 100644 --- a/website/src/repl/Repl.css +++ b/website/src/repl/Repl.css @@ -60,4 +60,4 @@ #code .cm-focused { outline: none; -} \ No newline at end of file +} From ef14074164833db89e6d0dc222a1c1089faff524 Mon Sep 17 00:00:00 2001 From: Kaspars Date: Wed, 15 Nov 2023 22:38:00 +0100 Subject: [PATCH 70/79] add option to disable active line highlighting in Code Settings --- packages/react/src/components/CodeMirror6.jsx | 9 ++++++++- packages/react/src/components/MiniRepl.jsx | 2 ++ website/src/docs/MiniRepl.jsx | 3 ++- website/src/repl/Footer.jsx | 6 ++++++ website/src/repl/Repl.jsx | 2 ++ website/src/settings.mjs | 2 ++ 6 files changed, 22 insertions(+), 2 deletions(-) diff --git a/packages/react/src/components/CodeMirror6.jsx b/packages/react/src/components/CodeMirror6.jsx index 667cd7e6..4852b287 100644 --- a/packages/react/src/components/CodeMirror6.jsx +++ b/packages/react/src/components/CodeMirror6.jsx @@ -33,6 +33,7 @@ export default function CodeMirror({ theme, keybindings, isLineNumbersDisplayed, + isActiveLineHighlighted, isAutoCompletionEnabled, isTooltipEnabled, isLineWrappingEnabled, @@ -109,7 +110,13 @@ export default function CodeMirror({ return _extensions; }, [keybindings, isAutoCompletionEnabled, isTooltipEnabled, isLineWrappingEnabled]); - const basicSetup = useMemo(() => ({ lineNumbers: isLineNumbersDisplayed }), [isLineNumbersDisplayed]); + const basicSetup = useMemo( + () => ({ + lineNumbers: isLineNumbersDisplayed, + highlightActiveLine: isActiveLineHighlighted, + }), + [isLineNumbersDisplayed, isActiveLineHighlighted], + ); return (

diff --git a/packages/react/src/components/MiniRepl.jsx b/packages/react/src/components/MiniRepl.jsx index 12500874..edf0a325 100644 --- a/packages/react/src/components/MiniRepl.jsx +++ b/packages/react/src/components/MiniRepl.jsx @@ -30,6 +30,7 @@ export function MiniRepl({ theme, keybindings, isLineNumbersDisplayed, + isActiveLineHighlighted, }) { drawTime = drawTime || (punchcard ? [0, 4] : undefined); const evalOnMount = !!drawTime; @@ -164,6 +165,7 @@ export function MiniRepl({ fontSize={fontSize} keybindings={keybindings} isLineNumbersDisplayed={isLineNumbersDisplayed} + highlightActiveLineGutter={isActiveLineHighlighted} /> )} {error &&
{error.message}
} diff --git a/website/src/docs/MiniRepl.jsx b/website/src/docs/MiniRepl.jsx index 4b2fcfa8..4b37ebad 100644 --- a/website/src/docs/MiniRepl.jsx +++ b/website/src/docs/MiniRepl.jsx @@ -41,7 +41,7 @@ export function MiniRepl({ claviatureLabels, }) { const [Repl, setRepl] = useState(); - const { theme, keybindings, fontSize, fontFamily, isLineNumbersDisplayed } = useSettings(); + const { theme, keybindings, fontSize, fontFamily, isLineNumbersDisplayed, isActiveLineHighlighted } = useSettings(); const [activeNotes, setActiveNotes] = useState([]); useEffect(() => { // we have to load this package on the client @@ -66,6 +66,7 @@ export function MiniRepl({ fontFamily={fontFamily} fontSize={fontSize} isLineNumbersDisplayed={isLineNumbersDisplayed} + isActiveLineHighlighted={isActiveLineHighlighted} onPaint={ claviature ? (ctx, time, haps, drawTime) => { diff --git a/website/src/repl/Footer.jsx b/website/src/repl/Footer.jsx index 62dcbcdf..b03f62d0 100644 --- a/website/src/repl/Footer.jsx +++ b/website/src/repl/Footer.jsx @@ -384,6 +384,7 @@ function SettingsTab({ scheduler }) { theme, keybindings, isLineNumbersDisplayed, + isActiveLineHighlighted, isAutoCompletionEnabled, isTooltipEnabled, isLineWrappingEnabled, @@ -453,6 +454,11 @@ function SettingsTab({ scheduler }) { onChange={(cbEvent) => settingsMap.setKey('isLineNumbersDisplayed', cbEvent.target.checked)} value={isLineNumbersDisplayed} /> + settingsMap.setKey('isActiveLineHighlighted', cbEvent.target.checked)} + value={isActiveLineHighlighted} + /> settingsMap.setKey('isAutoCompletionEnabled', cbEvent.target.checked)} diff --git a/website/src/repl/Repl.jsx b/website/src/repl/Repl.jsx index 41d4a35f..2700bcf9 100644 --- a/website/src/repl/Repl.jsx +++ b/website/src/repl/Repl.jsx @@ -125,6 +125,7 @@ export function Repl({ embedded = false }) { fontSize, fontFamily, isLineNumbersDisplayed, + isActiveLineHighlighted, isAutoCompletionEnabled, isTooltipEnabled, isLineWrappingEnabled, @@ -335,6 +336,7 @@ export function Repl({ embedded = false }) { value={code} keybindings={keybindings} isLineNumbersDisplayed={isLineNumbersDisplayed} + isActiveLineHighlighted={isActiveLineHighlighted} isAutoCompletionEnabled={isAutoCompletionEnabled} isTooltipEnabled={isTooltipEnabled} isLineWrappingEnabled={isLineWrappingEnabled} diff --git a/website/src/settings.mjs b/website/src/settings.mjs index ab58494c..9f6d2d90 100644 --- a/website/src/settings.mjs +++ b/website/src/settings.mjs @@ -6,6 +6,7 @@ export const defaultSettings = { activeFooter: 'intro', keybindings: 'codemirror', isLineNumbersDisplayed: true, + isActiveLineHighlighted: true, isAutoCompletionEnabled: false, isTooltipEnabled: false, isLineWrappingEnabled: false, @@ -26,6 +27,7 @@ export function useSettings() { ...state, isZen: [true, 'true'].includes(state.isZen) ? true : false, isLineNumbersDisplayed: [true, 'true'].includes(state.isLineNumbersDisplayed) ? true : false, + isActiveLineHighlighted: [true, 'true'].includes(state.isActiveLineHighlighted) ? true : false, isAutoCompletionEnabled: [true, 'true'].includes(state.isAutoCompletionEnabled) ? true : false, isTooltipEnabled: [true, 'true'].includes(state.isTooltipEnabled) ? true : false, isLineWrappingEnabled: [true, 'true'].includes(state.isLineWrappingEnabled) ? true : false, From 2d1fcf4a8d1230980b4d56a70c402bcae476043b Mon Sep 17 00:00:00 2001 From: Kaspars Date: Wed, 15 Nov 2023 22:53:56 +0100 Subject: [PATCH 71/79] fix typo --- packages/react/src/components/MiniRepl.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react/src/components/MiniRepl.jsx b/packages/react/src/components/MiniRepl.jsx index edf0a325..c7f70907 100644 --- a/packages/react/src/components/MiniRepl.jsx +++ b/packages/react/src/components/MiniRepl.jsx @@ -165,7 +165,7 @@ export function MiniRepl({ fontSize={fontSize} keybindings={keybindings} isLineNumbersDisplayed={isLineNumbersDisplayed} - highlightActiveLineGutter={isActiveLineHighlighted} + isActiveLineHighlighted={isActiveLineHighlighted} /> )} {error &&
{error.message}
} From ee7cd8cd4c38cd57450509a3f7911554f3383715 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 16 Nov 2023 06:51:51 +0100 Subject: [PATCH 72/79] remove pseudo note variables --- packages/transpiler/transpiler.mjs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/transpiler/transpiler.mjs b/packages/transpiler/transpiler.mjs index 256be1d2..4e66a57c 100644 --- a/packages/transpiler/transpiler.mjs +++ b/packages/transpiler/transpiler.mjs @@ -47,11 +47,6 @@ export function transpiler(input, options = {}) { }); return this.replace(widgetWithLocation(node)); } - // TODO: remove pseudo note variables? - if (node.type === 'Identifier' && isNoteWithOctave(node.name)) { - this.skip(); - return this.replace({ type: 'Literal', value: node.name }); - } }, leave(node, parent, prop, index) {}, }); From a7b799f1544096de99ef2aeff4e32c98a21697bd Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 16 Nov 2023 06:52:47 +0100 Subject: [PATCH 73/79] p and q methods + all function --- packages/core/evaluate.mjs | 5 ----- packages/core/repl.mjs | 44 +++++++++++++++++++++++++++++--------- 2 files changed, 34 insertions(+), 15 deletions(-) diff --git a/packages/core/evaluate.mjs b/packages/core/evaluate.mjs index 9627a2ad..340febe5 100644 --- a/packages/core/evaluate.mjs +++ b/packages/core/evaluate.mjs @@ -47,10 +47,5 @@ export const evaluate = async (code, transpiler) => { // if no transpiler is given, we expect a single instruction (!wrapExpression) const options = { wrapExpression: !!transpiler }; let evaluated = await safeEval(code, options); - if (!isPattern(evaluated)) { - console.log('evaluated', evaluated); - const message = `got "${typeof evaluated}" instead of pattern`; - throw new Error(message + (typeof evaluated === 'function' ? ', did you forget to call a function?' : '.')); - } return { mode: 'javascript', pattern: evaluated, meta }; }; diff --git a/packages/core/repl.mjs b/packages/core/repl.mjs index 67e2812d..91b8ea26 100644 --- a/packages/core/repl.mjs +++ b/packages/core/repl.mjs @@ -3,7 +3,7 @@ import { evaluate as _evaluate } from './evaluate.mjs'; import { logger } from './logger.mjs'; import { setTime } from './time.mjs'; import { evalScope } from './evaluate.mjs'; -import { register } from './pattern.mjs'; +import { register, Pattern, isPattern } from './pattern.mjs'; export function repl({ interval, @@ -24,7 +24,8 @@ export function repl({ getTime, onToggle, }); - let playPatterns = []; + let pPatterns = {}; + let allTransform; const setPattern = (pattern, autostart = true) => { pattern = editPattern?.(pattern) || pattern; scheduler.setPattern(pattern, autostart); @@ -36,10 +37,18 @@ export function repl({ } try { await beforeEval?.({ code }); - playPatterns = []; + pPatterns = {}; + allTransform = undefined; let { pattern, meta } = await _evaluate(code, transpiler); - if (playPatterns.length) { - pattern = pattern.stack(...playPatterns); + if (Object.keys(pPatterns).length) { + pattern = stack(...Object.values(pPatterns)); + if (allTransform) { + pattern = allTransform(pattern); + } + } + if (!isPattern(pattern)) { + const message = `got "${typeof evaluated}" instead of pattern`; + throw new Error(message + (typeof evaluated === 'function' ? ', did you forget to call a function?' : '.')); } logger(`[eval] code updated`); setPattern(pattern, autostart); @@ -62,10 +71,25 @@ export function repl({ return pat.loopAtCps(cycles, scheduler.cps); }); - const play = register('play', (pat) => { - playPatterns.push(pat); - return pat; - }); + Pattern.prototype.p = function (id) { + pPatterns[id] = this; + return this; + }; + Pattern.prototype.q = function (id) { + return silence; + }; + + const all = function (transform) { + allTransform = transform; + }; + + for (let i = 1; i < 10; ++i) { + Object.defineProperty(Pattern.prototype, `d${i}`, { + get() { + return this.p(i); + }, + }); + } const fit = register('fit', (pat) => pat.withHap((hap) => @@ -80,7 +104,7 @@ export function repl({ evalScope({ loopAt, fit, - play, + all, setCps, setcps: setCps, setCpm, From f43f627037fd7b5e7824c7180d574d1ef15087f3 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 16 Nov 2023 07:17:59 +0100 Subject: [PATCH 74/79] + add hush + add the ability to evaluate without clearing --- packages/core/pattern.mjs | 4 ++-- packages/core/repl.mjs | 19 +++++++++++++------ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/packages/core/pattern.mjs b/packages/core/pattern.mjs index f30d21c8..16a310ce 100644 --- a/packages/core/pattern.mjs +++ b/packages/core/pattern.mjs @@ -1975,9 +1975,9 @@ export const press = register('press', function (pat) { * s("hh*3") * ) */ -export const hush = register('hush', function (pat) { +Pattern.prototype.hush = function () { return silence; -}); +}; /** * Applies `rev` to a pattern every other cycle, so that the pattern alternates between forwards and backwards. diff --git a/packages/core/repl.mjs b/packages/core/repl.mjs index 91b8ea26..42726786 100644 --- a/packages/core/repl.mjs +++ b/packages/core/repl.mjs @@ -26,25 +26,31 @@ export function repl({ }); let pPatterns = {}; let allTransform; + + const hush = function () { + pPatterns = {}; + allTransform = undefined; + return silence; + }; + const setPattern = (pattern, autostart = true) => { pattern = editPattern?.(pattern) || pattern; scheduler.setPattern(pattern, autostart); }; setTime(() => scheduler.now()); // TODO: refactor? - const evaluate = async (code, autostart = true) => { + const evaluate = async (code, autostart = true, shouldHush = true) => { if (!code) { throw new Error('no code to evaluate'); } try { await beforeEval?.({ code }); - pPatterns = {}; - allTransform = undefined; + shouldHush && hush(); let { pattern, meta } = await _evaluate(code, transpiler); if (Object.keys(pPatterns).length) { pattern = stack(...Object.values(pPatterns)); - if (allTransform) { - pattern = allTransform(pattern); - } + } + if (allTransform) { + pattern = allTransform(pattern); } if (!isPattern(pattern)) { const message = `got "${typeof evaluated}" instead of pattern`; @@ -105,6 +111,7 @@ export function repl({ loopAt, fit, all, + hush, setCps, setcps: setCps, setCpm, From a4487179a5a5b10af4c7874fb1c425c1b8e62256 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 16 Nov 2023 07:25:20 +0100 Subject: [PATCH 75/79] fix tests --- packages/core/pattern.mjs | 10 +++++----- packages/core/repl.mjs | 2 +- packages/transpiler/test/transpiler.test.mjs | 3 --- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/packages/core/pattern.mjs b/packages/core/pattern.mjs index 16a310ce..5a9a3fe8 100644 --- a/packages/core/pattern.mjs +++ b/packages/core/pattern.mjs @@ -1178,7 +1178,7 @@ export function reify(thing) { * @return {Pattern} * @synonyms polyrhythm, pr * @example - * stack(g3, b3, [e4, d4]).note() // "g3,b3,[e4,d4]".note() + * stack("g3", "b3", ["e4", "d4"]).note() // "g3,b3,[e4,d4]".note() */ export function stack(...pats) { // Array test here is to avoid infinite recursions.. @@ -1193,7 +1193,7 @@ export function stack(...pats) { * * @return {Pattern} * @example - * slowcat(e5, b4, [d5, c5]) + * slowcat("e5", "b4", ["d5", "c5"]) * */ export function slowcat(...pats) { @@ -1237,7 +1237,7 @@ export function slowcatPrime(...pats) { * @synonyms slowcat * @return {Pattern} * @example - * cat(e5, b4, [d5, c5]).note() // "".note() + * cat("e5", "b4", ["d5", "c5"]).note() // "".note() * */ export function cat(...pats) { @@ -1247,7 +1247,7 @@ export function cat(...pats) { /** Like {@link Pattern.seq}, but each step has a length, relative to the whole. * @return {Pattern} * @example - * timeCat([3,e3],[1, g3]).note() // "e3@3 g3".note() + * timeCat([3,"e3"],[1, "g3"]).note() // "e3@3 g3".note() */ export function timeCat(...timepats) { const total = timepats.map((a) => a[0]).reduce((a, b) => a.add(b), Fraction(0)); @@ -1287,7 +1287,7 @@ export function sequence(...pats) { /** Like **cat**, but the items are crammed into one cycle. * @synonyms fastcat, sequence * @example - * seq(e5, b4, [d5, c5]).note() // "e5 b4 [d5 c5]".note() + * seq("e5", "b4", ["d5", "c5"]).note() // "e5 b4 [d5 c5]".note() * */ export function seq(...pats) { diff --git a/packages/core/repl.mjs b/packages/core/repl.mjs index 42726786..c67e97d9 100644 --- a/packages/core/repl.mjs +++ b/packages/core/repl.mjs @@ -3,7 +3,7 @@ import { evaluate as _evaluate } from './evaluate.mjs'; import { logger } from './logger.mjs'; import { setTime } from './time.mjs'; import { evalScope } from './evaluate.mjs'; -import { register, Pattern, isPattern } from './pattern.mjs'; +import { register, Pattern, isPattern, silence, stack } from './pattern.mjs'; export function repl({ interval, diff --git a/packages/transpiler/test/transpiler.test.mjs b/packages/transpiler/test/transpiler.test.mjs index 1d14986d..5f1b754f 100644 --- a/packages/transpiler/test/transpiler.test.mjs +++ b/packages/transpiler/test/transpiler.test.mjs @@ -17,9 +17,6 @@ describe('transpiler', () => { it('wraps backtick string with mini and adds location', () => { expect(transpiler('`c3`', simple).output).toEqual("m('c3', 0);"); }); - it('replaces note variables with note strings', () => { - expect(transpiler('seq(c3, d3)', simple).output).toEqual("seq('c3', 'd3');"); - }); it('keeps tagged template literal as is', () => { expect(transpiler('xxx`c3`', simple).output).toEqual('xxx`c3`;'); }); From cb9ef3ee6adcf5190f6fcfb7241e0a655eef7115 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Fri, 17 Nov 2023 09:45:44 +0100 Subject: [PATCH 76/79] add q1 .. q9 shortcuts --- packages/core/repl.mjs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/core/repl.mjs b/packages/core/repl.mjs index c67e97d9..9e8097d9 100644 --- a/packages/core/repl.mjs +++ b/packages/core/repl.mjs @@ -87,6 +87,7 @@ export function repl({ const all = function (transform) { allTransform = transform; + return silence; }; for (let i = 1; i < 10; ++i) { @@ -95,6 +96,7 @@ export function repl({ return this.p(i); }, }); + Pattern.prototype[`q${i}`] = silence; } const fit = register('fit', (pat) => From 265f01eb0611c8fb3273717fa3645a83edefc427 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Fri, 17 Nov 2023 10:50:45 +0100 Subject: [PATCH 77/79] add p1 .. p9 shortcuts as well --- packages/core/repl.mjs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/core/repl.mjs b/packages/core/repl.mjs index 9e8097d9..3645d594 100644 --- a/packages/core/repl.mjs +++ b/packages/core/repl.mjs @@ -96,6 +96,11 @@ export function repl({ return this.p(i); }, }); + Object.defineProperty(Pattern.prototype, `p${i}`, { + get() { + return this.p(i); + }, + }); Pattern.prototype[`q${i}`] = silence; } From a84cfb5677b5ed62f72b3bb078033485044edc7a Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Fri, 17 Nov 2023 14:07:26 +0100 Subject: [PATCH 78/79] bump superdough --- packages/superdough/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/superdough/package.json b/packages/superdough/package.json index 0f862c03..12e28438 100644 --- a/packages/superdough/package.json +++ b/packages/superdough/package.json @@ -1,6 +1,6 @@ { "name": "superdough", - "version": "0.9.10", + "version": "0.9.11", "description": "simple web audio synth and sampler intended for live coding. inspired by superdirt and webdirt.", "main": "index.mjs", "type": "module", From a3bf6975c403897ef2d2e407a260fd7434e6314b Mon Sep 17 00:00:00 2001 From: Alexandre Gravel-Raymond Date: Fri, 17 Nov 2023 15:33:53 +0100 Subject: [PATCH 79/79] Mark optional slider params --- packages/codemirror/slider.mjs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/codemirror/slider.mjs b/packages/codemirror/slider.mjs index a22f4d2a..1ae3deaf 100644 --- a/packages/codemirror/slider.mjs +++ b/packages/codemirror/slider.mjs @@ -116,9 +116,9 @@ export const sliderPlugin = ViewPlugin.fromClass( * * @name slider * @param {number} value Initial value - * @param {number} min Minimum value - * @param {number} max Maximum value - * @param {number} step Step size + * @param {number} min Minimum value - optional, defaults to 0 + * @param {number} max Maximum value - optional, defaults to 1 + * @param {number} step Step size - optional */ export let slider = (value) => { console.warn('slider will only work when the transpiler is used... passing value as is');