From 2276f6c5624358c9f0bf7a129ae042da4de740ec Mon Sep 17 00:00:00 2001 From: Guillaume Pierson Date: Thu, 14 Mar 2024 14:46:06 +0100 Subject: [PATCH 1/7] Upgrade ocliff version and migrate almost all files to ts --- .github/workflows/deploy.yml | 10 +- .gitignore | 1 + .../@yarnpkg/plugin-workspace-tools.cjs | 28 + .yarnrc.yml | 4 + Makefile | 10 +- README.md | 119 +- bin/dev.cmd | 3 + bin/dev.js | 5 + bin/run | 5 - bin/run.js | 5 + e2e/.greenframe.single.esm.yml | 5 + e2e/greenframe.io/analyze.spec.js | 5 +- e2e/greenframe.io/open.spec.js | 5 +- e2e/local/analyze.spec.js | 14 +- e2e/local/open.spec.js | 5 +- package.json | 23 +- ...stallScript.js => uploadInstallScript.cjs} | 0 src/commands/analyze.ts | 82 +- src/commands/kube-config.ts | 14 +- src/commands/{open.js => open.ts} | 32 +- src/commands/{update.js => update.ts} | 38 +- src/examples/README.md | 1 + ...g.envfile.js => envvar.config.envfile.cjs} | 0 ...isolated.js => envvar.config.isolated.cjs} | 0 ...e.envfile.js => envvar.inline.envfile.cjs} | 0 ...pleOfScenario.js => exampleOfScenario.cjs} | 0 .../{greenframe.js => greenframe.cjs} | 0 .../{greenframe2.js => greenframe2.cjs} | 0 .../{greenframeFail.js => greenframeFail.cjs} | 0 .../{laneuvelotte.js => laneuvelotte.cjs} | 0 .../{lavolpiliere.js => lavolpiliere.cjs} | 0 .../{marmelab.en.js => marmelab.en.cjs} | 0 .../{marmelab.fr.js => marmelab.fr.cjs} | 0 src/examples/marmelab.mjs | 6 + src/examples/{moviedb.js => moviedb.cjs} | 0 .../{nextWebsite.js => nextWebsite.cjs} | 0 .../{playstation.js => playstation.cjs} | 0 src/examples/{ra-demo.js => ra-demo.cjs} | 0 src/examples/{visit.js => visit.cjs} | 0 src/index.ts | 4 +- src/model/index.ts | 24 +- .../__tests__/getAverageMilestones.ts | 2 +- .../stat-tools/__tests__/getAverageStats.ts | 4 +- .../stat-tools/__tests__/getConsumption.ts | 2 +- .../docker/__tests__/computeStats.test.ts | 6 +- src/model/stat-tools/docker/computeStats.ts | 4 +- src/model/stat-tools/docker/readStats.ts | 6 +- src/model/stat-tools/getAverageMilestones.ts | 2 +- src/model/stat-tools/getAverageStats.ts | 2 +- src/model/stat-tools/getConsumption.ts | 15 +- src/model/stat-tools/getWh.ts | 8 +- src/model/stat-tools/intervals.ts | 2 +- src/model/stat-tools/mergeScore.ts | 2 +- .../providers/__tests__/docker.test.ts | 4 +- .../providers/__tests__/kubernetes.test.ts | 4 +- src/model/stat-tools/providers/docker.ts | 2 +- src/model/stat-tools/providers/kubernetes.ts | 2 +- src/model/stores/__tests__/statStore.test.ts | 8 +- .../stores/__tests__/timeframeStore.test.ts | 6 +- src/model/stores/statStore.ts | 4 +- src/model/stores/timeframeStore.ts | 2 +- src/runner/{index.js => index.ts} | 10 +- ...{scenarioWrapper.js => scenarioWrapper.ts} | 34 +- src/runner/scopedPage.ts | 4 +- ...{parseConfigFile.js => parseConfigFile.ts} | 2 +- ...eadFileToString.js => readFileToString.ts} | 8 +- src/services/api/analyses.ts | 10 +- src/services/api/instance.ts | 1 - src/services/api/projects.js | 7 - src/services/api/projects.ts | 5 + src/services/api/scenarios.ts | 2 +- src/services/computeAnalysisResult.ts | 8 +- src/services/computeScenarioResult.ts | 6 +- ...oContainer.js => execScenarioContainer.ts} | 32 +- .../container/__tests__/getContainerStats.ts | 2 +- ...oContainer.js => execScenarioContainer.ts} | 57 +- ...ContainerStats.js => getContainerStats.ts} | 59 +- src/services/container/getPodsStats.ts | 10 +- src/services/container/index.ts | 22 +- .../mergePodStatsWithNetworkStats.ts | 10 +- src/services/container/kubernetes/cadvisor.ts | 8 +- src/services/container/kubernetes/client.ts | 12 +- .../container/kubernetes/getContainerStats.ts | 6 +- .../mergePodStatsWithNetworkStats.ts | 9 +- src/services/container/kubernetes/pods.ts | 2 +- .../container/kubernetes/structureNodes.ts | 10 +- src/services/detectExecutablePath.ts | 2 +- src/services/docker/index.js | 9 - src/services/docker/index.ts | 8 + src/services/errors/ConfigurationError.js | 11 - src/services/errors/ConfigurationError.ts | 10 + .../{ScenarioError.js => ScenarioError.ts} | 7 +- src/services/errors/{Sentry.js => Sentry.ts} | 6 +- src/services/errors/errorCodes.js | 8 - src/services/errors/errorCodes.ts | 6 + .../git/__tests__/{index.js => index.ts} | 15 +- .../git/__tests__/{utils.js => utils.ts} | 21 +- src/services/git/{index.js => index.ts} | 26 +- src/services/git/{utils.js => utils.ts} | 27 +- ...{parseConfigFile.js => parseConfigFile.ts} | 49 +- ...eadFileToString.js => readFileToString.ts} | 12 +- src/tasks/addKubeGreenframeDaemonset.ts | 8 +- src/tasks/addKubeGreenframeNamespace.ts | 10 +- src/tasks/checkGreenFrameSecretToken.ts | 2 +- ...ateNewAnalysis.js => createNewAnalysis.ts} | 17 +- src/tasks/deleteKubeGreenframeNamespace.ts | 14 +- src/tasks/detectDockerVersion.js | 12 - src/tasks/detectDockerVersion.ts | 17 + src/tasks/detectKubernetesVersion.ts | 13 +- ...ysisResult.js => displayAnalysisResult.ts} | 46 +- src/tasks/executeDistantAnalysis.js | 10 - src/tasks/executeDistantAnalysis.ts | 10 + src/tasks/initializeKubeClient.ts | 6 +- src/tasks/retrieveGitInformations.ts | 8 +- ...roject.js => retrieveGreenFrameProject.ts} | 18 +- src/tasks/runScenariosAndSaveResult.ts | 19 +- src/types.ts | 2 +- tsconfig.json | 4 +- yarn.lock | 2857 +++++++++-------- 119 files changed, 2277 insertions(+), 1884 deletions(-) create mode 100644 .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs create mode 100644 bin/dev.cmd create mode 100755 bin/dev.js delete mode 100755 bin/run create mode 100755 bin/run.js create mode 100644 e2e/.greenframe.single.esm.yml rename scripts/{uploadInstallScript.js => uploadInstallScript.cjs} (100%) rename src/commands/{open.js => open.ts} (81%) rename src/commands/{update.js => update.ts} (68%) create mode 100644 src/examples/README.md rename src/examples/{envvar.config.envfile.js => envvar.config.envfile.cjs} (100%) rename src/examples/{envvar.config.isolated.js => envvar.config.isolated.cjs} (100%) rename src/examples/{envvar.inline.envfile.js => envvar.inline.envfile.cjs} (100%) rename src/examples/{exampleOfScenario.js => exampleOfScenario.cjs} (100%) rename src/examples/{greenframe.js => greenframe.cjs} (100%) rename src/examples/{greenframe2.js => greenframe2.cjs} (100%) rename src/examples/{greenframeFail.js => greenframeFail.cjs} (100%) rename src/examples/{laneuvelotte.js => laneuvelotte.cjs} (100%) rename src/examples/{lavolpiliere.js => lavolpiliere.cjs} (100%) rename src/examples/{marmelab.en.js => marmelab.en.cjs} (100%) rename src/examples/{marmelab.fr.js => marmelab.fr.cjs} (100%) create mode 100644 src/examples/marmelab.mjs rename src/examples/{moviedb.js => moviedb.cjs} (100%) rename src/examples/{nextWebsite.js => nextWebsite.cjs} (100%) rename src/examples/{playstation.js => playstation.cjs} (100%) rename src/examples/{ra-demo.js => ra-demo.cjs} (100%) rename src/examples/{visit.js => visit.cjs} (100%) rename src/runner/{index.js => index.ts} (80%) rename src/runner/{scenarioWrapper.js => scenarioWrapper.ts} (71%) rename src/services/__tests__/{parseConfigFile.js => parseConfigFile.ts} (98%) rename src/services/__tests__/{readFileToString.js => readFileToString.ts} (77%) delete mode 100644 src/services/api/projects.js create mode 100644 src/services/api/projects.ts rename src/services/container/__tests__/{execScenarioContainer.js => execScenarioContainer.ts} (90%) rename src/services/container/{execScenarioContainer.js => execScenarioContainer.ts} (78%) rename src/services/container/{getContainerStats.js => getContainerStats.ts} (64%) delete mode 100644 src/services/docker/index.js create mode 100644 src/services/docker/index.ts delete mode 100644 src/services/errors/ConfigurationError.js create mode 100644 src/services/errors/ConfigurationError.ts rename src/services/errors/{ScenarioError.js => ScenarioError.ts} (54%) rename src/services/errors/{Sentry.js => Sentry.ts} (74%) delete mode 100644 src/services/errors/errorCodes.js create mode 100644 src/services/errors/errorCodes.ts rename src/services/git/__tests__/{index.js => index.ts} (88%) rename src/services/git/__tests__/{utils.js => utils.ts} (85%) rename src/services/git/{index.js => index.ts} (71%) rename src/services/git/{utils.js => utils.ts} (67%) rename src/services/{parseConfigFile.js => parseConfigFile.ts} (71%) rename src/services/{readFileToString.js => readFileToString.ts} (72%) rename src/tasks/{createNewAnalysis.js => createNewAnalysis.ts} (68%) delete mode 100644 src/tasks/detectDockerVersion.js create mode 100644 src/tasks/detectDockerVersion.ts rename src/tasks/{displayAnalysisResult.js => displayAnalysisResult.ts} (69%) delete mode 100644 src/tasks/executeDistantAnalysis.js create mode 100644 src/tasks/executeDistantAnalysis.ts rename src/tasks/{retrieveGreenFrameProject.js => retrieveGreenFrameProject.ts} (61%) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 936a5ff..b2661b3 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -25,7 +25,7 @@ jobs: - name: ⎔ Setup node uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 - name: 📥 Download deps uses: bahmutov/npm-install@v1 @@ -49,7 +49,7 @@ jobs: - name: ⎔ Setup node uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 - name: 📥 Download deps uses: bahmutov/npm-install@v1 @@ -70,7 +70,7 @@ jobs: - name: ⎔ Setup node uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 - name: 📥 Download deps uses: bahmutov/npm-install@v1 @@ -91,7 +91,7 @@ jobs: - name: ⎔ Setup node uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 - name: 📥 Download deps uses: bahmutov/npm-install@v1 @@ -120,7 +120,7 @@ jobs: - name: ⎔ Setup node uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 - name: 📥 Download deps uses: bahmutov/npm-install@v1 diff --git a/.gitignore b/.gitignore index ed4a561..2b3c285 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ package-lock.json .envrc .env .greenframe +oclif.manifest.json .pnp.* .yarn/* diff --git a/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs b/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs new file mode 100644 index 0000000..911cd23 --- /dev/null +++ b/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs @@ -0,0 +1,28 @@ +/* eslint-disable */ +//prettier-ignore +module.exports = { +name: "@yarnpkg/plugin-workspace-tools", +factory: function (require) { +var plugin=(()=>{var wr=Object.create,me=Object.defineProperty,Sr=Object.defineProperties,vr=Object.getOwnPropertyDescriptor,Hr=Object.getOwnPropertyDescriptors,$r=Object.getOwnPropertyNames,et=Object.getOwnPropertySymbols,kr=Object.getPrototypeOf,tt=Object.prototype.hasOwnProperty,Tr=Object.prototype.propertyIsEnumerable;var rt=(e,t,r)=>t in e?me(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,B=(e,t)=>{for(var r in t||(t={}))tt.call(t,r)&&rt(e,r,t[r]);if(et)for(var r of et(t))Tr.call(t,r)&&rt(e,r,t[r]);return e},Q=(e,t)=>Sr(e,Hr(t)),Lr=e=>me(e,"__esModule",{value:!0});var K=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Or=(e,t)=>{for(var r in t)me(e,r,{get:t[r],enumerable:!0})},Nr=(e,t,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of $r(t))!tt.call(e,n)&&n!=="default"&&me(e,n,{get:()=>t[n],enumerable:!(r=vr(t,n))||r.enumerable});return e},X=e=>Nr(Lr(me(e!=null?wr(kr(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var $e=K(te=>{"use strict";te.isInteger=e=>typeof e=="number"?Number.isInteger(e):typeof e=="string"&&e.trim()!==""?Number.isInteger(Number(e)):!1;te.find=(e,t)=>e.nodes.find(r=>r.type===t);te.exceedsLimit=(e,t,r=1,n)=>n===!1||!te.isInteger(e)||!te.isInteger(t)?!1:(Number(t)-Number(e))/Number(r)>=n;te.escapeNode=(e,t=0,r)=>{let n=e.nodes[t];!n||(r&&n.type===r||n.type==="open"||n.type==="close")&&n.escaped!==!0&&(n.value="\\"+n.value,n.escaped=!0)};te.encloseBrace=e=>e.type!=="brace"?!1:e.commas>>0+e.ranges>>0==0?(e.invalid=!0,!0):!1;te.isInvalidBrace=e=>e.type!=="brace"?!1:e.invalid===!0||e.dollar?!0:e.commas>>0+e.ranges>>0==0||e.open!==!0||e.close!==!0?(e.invalid=!0,!0):!1;te.isOpenOrClose=e=>e.type==="open"||e.type==="close"?!0:e.open===!0||e.close===!0;te.reduce=e=>e.reduce((t,r)=>(r.type==="text"&&t.push(r.value),r.type==="range"&&(r.type="text"),t),[]);te.flatten=(...e)=>{let t=[],r=n=>{for(let s=0;s{"use strict";var it=$e();at.exports=(e,t={})=>{let r=(n,s={})=>{let a=t.escapeInvalid&&it.isInvalidBrace(s),i=n.invalid===!0&&t.escapeInvalid===!0,o="";if(n.value)return(a||i)&&it.isOpenOrClose(n)?"\\"+n.value:n.value;if(n.value)return n.value;if(n.nodes)for(let h of n.nodes)o+=r(h);return o};return r(e)}});var ct=K((os,ot)=>{"use strict";ot.exports=function(e){return typeof e=="number"?e-e==0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var At=K((cs,ut)=>{"use strict";var lt=ct(),pe=(e,t,r)=>{if(lt(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(t===void 0||e===t)return String(e);if(lt(t)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let n=B({relaxZeros:!0},r);typeof n.strictZeros=="boolean"&&(n.relaxZeros=n.strictZeros===!1);let s=String(n.relaxZeros),a=String(n.shorthand),i=String(n.capture),o=String(n.wrap),h=e+":"+t+"="+s+a+i+o;if(pe.cache.hasOwnProperty(h))return pe.cache[h].result;let g=Math.min(e,t),f=Math.max(e,t);if(Math.abs(g-f)===1){let R=e+"|"+t;return n.capture?`(${R})`:n.wrap===!1?R:`(?:${R})`}let A=ft(e)||ft(t),p={min:e,max:t,a:g,b:f},k=[],y=[];if(A&&(p.isPadded=A,p.maxLen=String(p.max).length),g<0){let R=f<0?Math.abs(f):1;y=pt(R,Math.abs(g),p,n),g=p.a=0}return f>=0&&(k=pt(g,f,p,n)),p.negatives=y,p.positives=k,p.result=Ir(y,k,n),n.capture===!0?p.result=`(${p.result})`:n.wrap!==!1&&k.length+y.length>1&&(p.result=`(?:${p.result})`),pe.cache[h]=p,p.result};function Ir(e,t,r){let n=Pe(e,t,"-",!1,r)||[],s=Pe(t,e,"",!1,r)||[],a=Pe(e,t,"-?",!0,r)||[];return n.concat(a).concat(s).join("|")}function Mr(e,t){let r=1,n=1,s=ht(e,r),a=new Set([t]);for(;e<=s&&s<=t;)a.add(s),r+=1,s=ht(e,r);for(s=dt(t+1,n)-1;e1&&o.count.pop(),o.count.push(f.count[0]),o.string=o.pattern+gt(o.count),i=g+1;continue}r.isPadded&&(A=Gr(g,r,n)),f.string=A+f.pattern+gt(f.count),a.push(f),i=g+1,o=f}return a}function Pe(e,t,r,n,s){let a=[];for(let i of e){let{string:o}=i;!n&&!mt(t,"string",o)&&a.push(r+o),n&&mt(t,"string",o)&&a.push(r+o)}return a}function Pr(e,t){let r=[];for(let n=0;nt?1:t>e?-1:0}function mt(e,t,r){return e.some(n=>n[t]===r)}function ht(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function dt(e,t){return e-e%Math.pow(10,t)}function gt(e){let[t=0,r=""]=e;return r||t>1?`{${t+(r?","+r:"")}}`:""}function Dr(e,t,r){return`[${e}${t-e==1?"":"-"}${t}]`}function ft(e){return/^-?(0+)\d/.test(e)}function Gr(e,t,r){if(!t.isPadded)return e;let n=Math.abs(t.maxLen-String(e).length),s=r.relaxZeros!==!1;switch(n){case 0:return"";case 1:return s?"0?":"0";case 2:return s?"0{0,2}":"00";default:return s?`0{0,${n}}`:`0{${n}}`}}pe.cache={};pe.clearCache=()=>pe.cache={};ut.exports=pe});var Ge=K((us,Rt)=>{"use strict";var qr=require("util"),yt=At(),bt=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),Kr=e=>t=>e===!0?Number(t):String(t),De=e=>typeof e=="number"||typeof e=="string"&&e!=="",Re=e=>Number.isInteger(+e),Ue=e=>{let t=`${e}`,r=-1;if(t[0]==="-"&&(t=t.slice(1)),t==="0")return!1;for(;t[++r]==="0";);return r>0},Wr=(e,t,r)=>typeof e=="string"||typeof t=="string"?!0:r.stringify===!0,jr=(e,t,r)=>{if(t>0){let n=e[0]==="-"?"-":"";n&&(e=e.slice(1)),e=n+e.padStart(n?t-1:t,"0")}return r===!1?String(e):e},_t=(e,t)=>{let r=e[0]==="-"?"-":"";for(r&&(e=e.slice(1),t--);e.length{e.negatives.sort((i,o)=>io?1:0),e.positives.sort((i,o)=>io?1:0);let r=t.capture?"":"?:",n="",s="",a;return e.positives.length&&(n=e.positives.join("|")),e.negatives.length&&(s=`-(${r}${e.negatives.join("|")})`),n&&s?a=`${n}|${s}`:a=n||s,t.wrap?`(${r}${a})`:a},Et=(e,t,r,n)=>{if(r)return yt(e,t,B({wrap:!1},n));let s=String.fromCharCode(e);if(e===t)return s;let a=String.fromCharCode(t);return`[${s}-${a}]`},xt=(e,t,r)=>{if(Array.isArray(e)){let n=r.wrap===!0,s=r.capture?"":"?:";return n?`(${s}${e.join("|")})`:e.join("|")}return yt(e,t,r)},Ct=(...e)=>new RangeError("Invalid range arguments: "+qr.inspect(...e)),wt=(e,t,r)=>{if(r.strictRanges===!0)throw Ct([e,t]);return[]},Qr=(e,t)=>{if(t.strictRanges===!0)throw new TypeError(`Expected step "${e}" to be a number`);return[]},Xr=(e,t,r=1,n={})=>{let s=Number(e),a=Number(t);if(!Number.isInteger(s)||!Number.isInteger(a)){if(n.strictRanges===!0)throw Ct([e,t]);return[]}s===0&&(s=0),a===0&&(a=0);let i=s>a,o=String(e),h=String(t),g=String(r);r=Math.max(Math.abs(r),1);let f=Ue(o)||Ue(h)||Ue(g),A=f?Math.max(o.length,h.length,g.length):0,p=f===!1&&Wr(e,t,n)===!1,k=n.transform||Kr(p);if(n.toRegex&&r===1)return Et(_t(e,A),_t(t,A),!0,n);let y={negatives:[],positives:[]},R=T=>y[T<0?"negatives":"positives"].push(Math.abs(T)),_=[],x=0;for(;i?s>=a:s<=a;)n.toRegex===!0&&r>1?R(s):_.push(jr(k(s,x),A,p)),s=i?s-r:s+r,x++;return n.toRegex===!0?r>1?Fr(y,n):xt(_,null,B({wrap:!1},n)):_},Zr=(e,t,r=1,n={})=>{if(!Re(e)&&e.length>1||!Re(t)&&t.length>1)return wt(e,t,n);let s=n.transform||(p=>String.fromCharCode(p)),a=`${e}`.charCodeAt(0),i=`${t}`.charCodeAt(0),o=a>i,h=Math.min(a,i),g=Math.max(a,i);if(n.toRegex&&r===1)return Et(h,g,!1,n);let f=[],A=0;for(;o?a>=i:a<=i;)f.push(s(a,A)),a=o?a-r:a+r,A++;return n.toRegex===!0?xt(f,null,{wrap:!1,options:n}):f},Te=(e,t,r,n={})=>{if(t==null&&De(e))return[e];if(!De(e)||!De(t))return wt(e,t,n);if(typeof r=="function")return Te(e,t,1,{transform:r});if(bt(r))return Te(e,t,0,r);let s=B({},n);return s.capture===!0&&(s.wrap=!0),r=r||s.step||1,Re(r)?Re(e)&&Re(t)?Xr(e,t,r,s):Zr(e,t,Math.max(Math.abs(r),1),s):r!=null&&!bt(r)?Qr(r,s):Te(e,t,1,r)};Rt.exports=Te});var Ht=K((ls,St)=>{"use strict";var Yr=Ge(),vt=$e(),zr=(e,t={})=>{let r=(n,s={})=>{let a=vt.isInvalidBrace(s),i=n.invalid===!0&&t.escapeInvalid===!0,o=a===!0||i===!0,h=t.escapeInvalid===!0?"\\":"",g="";if(n.isOpen===!0||n.isClose===!0)return h+n.value;if(n.type==="open")return o?h+n.value:"(";if(n.type==="close")return o?h+n.value:")";if(n.type==="comma")return n.prev.type==="comma"?"":o?n.value:"|";if(n.value)return n.value;if(n.nodes&&n.ranges>0){let f=vt.reduce(n.nodes),A=Yr(...f,Q(B({},t),{wrap:!1,toRegex:!0}));if(A.length!==0)return f.length>1&&A.length>1?`(${A})`:A}if(n.nodes)for(let f of n.nodes)g+=r(f,n);return g};return r(e)};St.exports=zr});var Tt=K((ps,$t)=>{"use strict";var Vr=Ge(),kt=ke(),he=$e(),fe=(e="",t="",r=!1)=>{let n=[];if(e=[].concat(e),t=[].concat(t),!t.length)return e;if(!e.length)return r?he.flatten(t).map(s=>`{${s}}`):t;for(let s of e)if(Array.isArray(s))for(let a of s)n.push(fe(a,t,r));else for(let a of t)r===!0&&typeof a=="string"&&(a=`{${a}}`),n.push(Array.isArray(a)?fe(s,a,r):s+a);return he.flatten(n)},Jr=(e,t={})=>{let r=t.rangeLimit===void 0?1e3:t.rangeLimit,n=(s,a={})=>{s.queue=[];let i=a,o=a.queue;for(;i.type!=="brace"&&i.type!=="root"&&i.parent;)i=i.parent,o=i.queue;if(s.invalid||s.dollar){o.push(fe(o.pop(),kt(s,t)));return}if(s.type==="brace"&&s.invalid!==!0&&s.nodes.length===2){o.push(fe(o.pop(),["{}"]));return}if(s.nodes&&s.ranges>0){let A=he.reduce(s.nodes);if(he.exceedsLimit(...A,t.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let p=Vr(...A,t);p.length===0&&(p=kt(s,t)),o.push(fe(o.pop(),p)),s.nodes=[];return}let h=he.encloseBrace(s),g=s.queue,f=s;for(;f.type!=="brace"&&f.type!=="root"&&f.parent;)f=f.parent,g=f.queue;for(let A=0;A{"use strict";Lt.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` +`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var Pt=K((hs,Nt)=>{"use strict";var en=ke(),{MAX_LENGTH:It,CHAR_BACKSLASH:qe,CHAR_BACKTICK:tn,CHAR_COMMA:rn,CHAR_DOT:nn,CHAR_LEFT_PARENTHESES:sn,CHAR_RIGHT_PARENTHESES:an,CHAR_LEFT_CURLY_BRACE:on,CHAR_RIGHT_CURLY_BRACE:cn,CHAR_LEFT_SQUARE_BRACKET:Bt,CHAR_RIGHT_SQUARE_BRACKET:Mt,CHAR_DOUBLE_QUOTE:un,CHAR_SINGLE_QUOTE:ln,CHAR_NO_BREAK_SPACE:pn,CHAR_ZERO_WIDTH_NOBREAK_SPACE:fn}=Ot(),hn=(e,t={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let r=t||{},n=typeof r.maxLength=="number"?Math.min(It,r.maxLength):It;if(e.length>n)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${n})`);let s={type:"root",input:e,nodes:[]},a=[s],i=s,o=s,h=0,g=e.length,f=0,A=0,p,k={},y=()=>e[f++],R=_=>{if(_.type==="text"&&o.type==="dot"&&(o.type="text"),o&&o.type==="text"&&_.type==="text"){o.value+=_.value;return}return i.nodes.push(_),_.parent=i,_.prev=o,o=_,_};for(R({type:"bos"});f0){if(i.ranges>0){i.ranges=0;let _=i.nodes.shift();i.nodes=[_,{type:"text",value:en(i)}]}R({type:"comma",value:p}),i.commas++;continue}if(p===nn&&A>0&&i.commas===0){let _=i.nodes;if(A===0||_.length===0){R({type:"text",value:p});continue}if(o.type==="dot"){if(i.range=[],o.value+=p,o.type="range",i.nodes.length!==3&&i.nodes.length!==5){i.invalid=!0,i.ranges=0,o.type="text";continue}i.ranges++,i.args=[];continue}if(o.type==="range"){_.pop();let x=_[_.length-1];x.value+=o.value+p,o=x,i.ranges--;continue}R({type:"dot",value:p});continue}R({type:"text",value:p})}do if(i=a.pop(),i.type!=="root"){i.nodes.forEach(T=>{T.nodes||(T.type==="open"&&(T.isOpen=!0),T.type==="close"&&(T.isClose=!0),T.nodes||(T.type="text"),T.invalid=!0)});let _=a[a.length-1],x=_.nodes.indexOf(i);_.nodes.splice(x,1,...i.nodes)}while(a.length>0);return R({type:"eos"}),s};Nt.exports=hn});var Gt=K((ds,Dt)=>{"use strict";var Ut=ke(),dn=Ht(),gn=Tt(),mn=Pt(),V=(e,t={})=>{let r=[];if(Array.isArray(e))for(let n of e){let s=V.create(n,t);Array.isArray(s)?r.push(...s):r.push(s)}else r=[].concat(V.create(e,t));return t&&t.expand===!0&&t.nodupes===!0&&(r=[...new Set(r)]),r};V.parse=(e,t={})=>mn(e,t);V.stringify=(e,t={})=>typeof e=="string"?Ut(V.parse(e,t),t):Ut(e,t);V.compile=(e,t={})=>(typeof e=="string"&&(e=V.parse(e,t)),dn(e,t));V.expand=(e,t={})=>{typeof e=="string"&&(e=V.parse(e,t));let r=gn(e,t);return t.noempty===!0&&(r=r.filter(Boolean)),t.nodupes===!0&&(r=[...new Set(r)]),r};V.create=(e,t={})=>e===""||e.length<3?[e]:t.expand!==!0?V.compile(e,t):V.expand(e,t);Dt.exports=V});var ye=K((gs,qt)=>{"use strict";var An=require("path"),ie="\\\\/",Kt=`[^${ie}]`,ce="\\.",Rn="\\+",yn="\\?",Le="\\/",bn="(?=.)",Wt="[^/]",Ke=`(?:${Le}|$)`,jt=`(?:^|${Le})`,We=`${ce}{1,2}${Ke}`,_n=`(?!${ce})`,En=`(?!${jt}${We})`,xn=`(?!${ce}{0,1}${Ke})`,Cn=`(?!${We})`,wn=`[^.${Le}]`,Sn=`${Wt}*?`,Ft={DOT_LITERAL:ce,PLUS_LITERAL:Rn,QMARK_LITERAL:yn,SLASH_LITERAL:Le,ONE_CHAR:bn,QMARK:Wt,END_ANCHOR:Ke,DOTS_SLASH:We,NO_DOT:_n,NO_DOTS:En,NO_DOT_SLASH:xn,NO_DOTS_SLASH:Cn,QMARK_NO_DOT:wn,STAR:Sn,START_ANCHOR:jt},vn=Q(B({},Ft),{SLASH_LITERAL:`[${ie}]`,QMARK:Kt,STAR:`${Kt}*?`,DOTS_SLASH:`${ce}{1,2}(?:[${ie}]|$)`,NO_DOT:`(?!${ce})`,NO_DOTS:`(?!(?:^|[${ie}])${ce}{1,2}(?:[${ie}]|$))`,NO_DOT_SLASH:`(?!${ce}{0,1}(?:[${ie}]|$))`,NO_DOTS_SLASH:`(?!${ce}{1,2}(?:[${ie}]|$))`,QMARK_NO_DOT:`[^.${ie}]`,START_ANCHOR:`(?:^|[${ie}])`,END_ANCHOR:`(?:[${ie}]|$)`}),Hn={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};qt.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:Hn,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:An.sep,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===!0?vn:Ft}}});var be=K(Z=>{"use strict";var $n=require("path"),kn=process.platform==="win32",{REGEX_BACKSLASH:Tn,REGEX_REMOVE_BACKSLASH:Ln,REGEX_SPECIAL_CHARS:On,REGEX_SPECIAL_CHARS_GLOBAL:Nn}=ye();Z.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);Z.hasRegexChars=e=>On.test(e);Z.isRegexChar=e=>e.length===1&&Z.hasRegexChars(e);Z.escapeRegex=e=>e.replace(Nn,"\\$1");Z.toPosixSlashes=e=>e.replace(Tn,"/");Z.removeBackslashes=e=>e.replace(Ln,t=>t==="\\"?"":t);Z.supportsLookbehinds=()=>{let e=process.version.slice(1).split(".").map(Number);return e.length===3&&e[0]>=9||e[0]===8&&e[1]>=10};Z.isWindows=e=>e&&typeof e.windows=="boolean"?e.windows:kn===!0||$n.sep==="\\";Z.escapeLast=(e,t,r)=>{let n=e.lastIndexOf(t,r);return n===-1?e:e[n-1]==="\\"?Z.escapeLast(e,t,n-1):`${e.slice(0,n)}\\${e.slice(n)}`};Z.removePrefix=(e,t={})=>{let r=e;return r.startsWith("./")&&(r=r.slice(2),t.prefix="./"),r};Z.wrapOutput=(e,t={},r={})=>{let n=r.contains?"":"^",s=r.contains?"":"$",a=`${n}(?:${e})${s}`;return t.negated===!0&&(a=`(?:^(?!${a}).*$)`),a}});var er=K((As,Qt)=>{"use strict";var Xt=be(),{CHAR_ASTERISK:je,CHAR_AT:In,CHAR_BACKWARD_SLASH:_e,CHAR_COMMA:Bn,CHAR_DOT:Fe,CHAR_EXCLAMATION_MARK:Qe,CHAR_FORWARD_SLASH:Zt,CHAR_LEFT_CURLY_BRACE:Xe,CHAR_LEFT_PARENTHESES:Ze,CHAR_LEFT_SQUARE_BRACKET:Mn,CHAR_PLUS:Pn,CHAR_QUESTION_MARK:Yt,CHAR_RIGHT_CURLY_BRACE:Dn,CHAR_RIGHT_PARENTHESES:zt,CHAR_RIGHT_SQUARE_BRACKET:Un}=ye(),Vt=e=>e===Zt||e===_e,Jt=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?Infinity:1)},Gn=(e,t)=>{let r=t||{},n=e.length-1,s=r.parts===!0||r.scanToEnd===!0,a=[],i=[],o=[],h=e,g=-1,f=0,A=0,p=!1,k=!1,y=!1,R=!1,_=!1,x=!1,T=!1,O=!1,W=!1,G=!1,ne=0,E,b,C={value:"",depth:0,isGlob:!1},M=()=>g>=n,l=()=>h.charCodeAt(g+1),H=()=>(E=b,h.charCodeAt(++g));for(;g0&&(j=h.slice(0,f),h=h.slice(f),A-=f),w&&y===!0&&A>0?(w=h.slice(0,A),c=h.slice(A)):y===!0?(w="",c=h):w=h,w&&w!==""&&w!=="/"&&w!==h&&Vt(w.charCodeAt(w.length-1))&&(w=w.slice(0,-1)),r.unescape===!0&&(c&&(c=Xt.removeBackslashes(c)),w&&T===!0&&(w=Xt.removeBackslashes(w)));let u={prefix:j,input:e,start:f,base:w,glob:c,isBrace:p,isBracket:k,isGlob:y,isExtglob:R,isGlobstar:_,negated:O,negatedExtglob:W};if(r.tokens===!0&&(u.maxDepth=0,Vt(b)||i.push(C),u.tokens=i),r.parts===!0||r.tokens===!0){let I;for(let $=0;${"use strict";var Oe=ye(),J=be(),{MAX_LENGTH:Ne,POSIX_REGEX_SOURCE:qn,REGEX_NON_SPECIAL_CHARS:Kn,REGEX_SPECIAL_CHARS_BACKREF:Wn,REPLACEMENTS:rr}=Oe,jn=(e,t)=>{if(typeof t.expandRange=="function")return t.expandRange(...e,t);e.sort();let r=`[${e.join("-")}]`;try{new RegExp(r)}catch(n){return e.map(s=>J.escapeRegex(s)).join("..")}return r},de=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,nr=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=rr[e]||e;let r=B({},t),n=typeof r.maxLength=="number"?Math.min(Ne,r.maxLength):Ne,s=e.length;if(s>n)throw new SyntaxError(`Input length: ${s}, exceeds maximum allowed length: ${n}`);let a={type:"bos",value:"",output:r.prepend||""},i=[a],o=r.capture?"":"?:",h=J.isWindows(t),g=Oe.globChars(h),f=Oe.extglobChars(g),{DOT_LITERAL:A,PLUS_LITERAL:p,SLASH_LITERAL:k,ONE_CHAR:y,DOTS_SLASH:R,NO_DOT:_,NO_DOT_SLASH:x,NO_DOTS_SLASH:T,QMARK:O,QMARK_NO_DOT:W,STAR:G,START_ANCHOR:ne}=g,E=m=>`(${o}(?:(?!${ne}${m.dot?R:A}).)*?)`,b=r.dot?"":_,C=r.dot?O:W,M=r.bash===!0?E(r):G;r.capture&&(M=`(${M})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let l={input:e,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:i};e=J.removePrefix(e,l),s=e.length;let H=[],w=[],j=[],c=a,u,I=()=>l.index===s-1,$=l.peek=(m=1)=>e[l.index+m],ee=l.advance=()=>e[++l.index]||"",se=()=>e.slice(l.index+1),z=(m="",L=0)=>{l.consumed+=m,l.index+=L},Ce=m=>{l.output+=m.output!=null?m.output:m.value,z(m.value)},xr=()=>{let m=1;for(;$()==="!"&&($(2)!=="("||$(3)==="?");)ee(),l.start++,m++;return m%2==0?!1:(l.negated=!0,l.start++,!0)},we=m=>{l[m]++,j.push(m)},ue=m=>{l[m]--,j.pop()},v=m=>{if(c.type==="globstar"){let L=l.braces>0&&(m.type==="comma"||m.type==="brace"),d=m.extglob===!0||H.length&&(m.type==="pipe"||m.type==="paren");m.type!=="slash"&&m.type!=="paren"&&!L&&!d&&(l.output=l.output.slice(0,-c.output.length),c.type="star",c.value="*",c.output=M,l.output+=c.output)}if(H.length&&m.type!=="paren"&&(H[H.length-1].inner+=m.value),(m.value||m.output)&&Ce(m),c&&c.type==="text"&&m.type==="text"){c.value+=m.value,c.output=(c.output||"")+m.value;return}m.prev=c,i.push(m),c=m},Se=(m,L)=>{let d=Q(B({},f[L]),{conditions:1,inner:""});d.prev=c,d.parens=l.parens,d.output=l.output;let S=(r.capture?"(":"")+d.open;we("parens"),v({type:m,value:L,output:l.output?"":y}),v({type:"paren",extglob:!0,value:ee(),output:S}),H.push(d)},Cr=m=>{let L=m.close+(r.capture?")":""),d;if(m.type==="negate"){let S=M;m.inner&&m.inner.length>1&&m.inner.includes("/")&&(S=E(r)),(S!==M||I()||/^\)+$/.test(se()))&&(L=m.close=`)$))${S}`),m.inner.includes("*")&&(d=se())&&/^\.[^\\/.]+$/.test(d)&&(L=m.close=`)${d})${S})`),m.prev.type==="bos"&&(l.negatedExtglob=!0)}v({type:"paren",extglob:!0,value:u,output:L}),ue("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let m=!1,L=e.replace(Wn,(d,S,P,F,q,Me)=>F==="\\"?(m=!0,d):F==="?"?S?S+F+(q?O.repeat(q.length):""):Me===0?C+(q?O.repeat(q.length):""):O.repeat(P.length):F==="."?A.repeat(P.length):F==="*"?S?S+F+(q?M:""):M:S?d:`\\${d}`);return m===!0&&(r.unescape===!0?L=L.replace(/\\/g,""):L=L.replace(/\\+/g,d=>d.length%2==0?"\\\\":d?"\\":"")),L===e&&r.contains===!0?(l.output=e,l):(l.output=J.wrapOutput(L,l,t),l)}for(;!I();){if(u=ee(),u==="\0")continue;if(u==="\\"){let d=$();if(d==="/"&&r.bash!==!0||d==="."||d===";")continue;if(!d){u+="\\",v({type:"text",value:u});continue}let S=/^\\+/.exec(se()),P=0;if(S&&S[0].length>2&&(P=S[0].length,l.index+=P,P%2!=0&&(u+="\\")),r.unescape===!0?u=ee():u+=ee(),l.brackets===0){v({type:"text",value:u});continue}}if(l.brackets>0&&(u!=="]"||c.value==="["||c.value==="[^")){if(r.posix!==!1&&u===":"){let d=c.value.slice(1);if(d.includes("[")&&(c.posix=!0,d.includes(":"))){let S=c.value.lastIndexOf("["),P=c.value.slice(0,S),F=c.value.slice(S+2),q=qn[F];if(q){c.value=P+q,l.backtrack=!0,ee(),!a.output&&i.indexOf(c)===1&&(a.output=y);continue}}}(u==="["&&$()!==":"||u==="-"&&$()==="]")&&(u=`\\${u}`),u==="]"&&(c.value==="["||c.value==="[^")&&(u=`\\${u}`),r.posix===!0&&u==="!"&&c.value==="["&&(u="^"),c.value+=u,Ce({value:u});continue}if(l.quotes===1&&u!=='"'){u=J.escapeRegex(u),c.value+=u,Ce({value:u});continue}if(u==='"'){l.quotes=l.quotes===1?0:1,r.keepQuotes===!0&&v({type:"text",value:u});continue}if(u==="("){we("parens"),v({type:"paren",value:u});continue}if(u===")"){if(l.parens===0&&r.strictBrackets===!0)throw new SyntaxError(de("opening","("));let d=H[H.length-1];if(d&&l.parens===d.parens+1){Cr(H.pop());continue}v({type:"paren",value:u,output:l.parens?")":"\\)"}),ue("parens");continue}if(u==="["){if(r.nobracket===!0||!se().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(de("closing","]"));u=`\\${u}`}else we("brackets");v({type:"bracket",value:u});continue}if(u==="]"){if(r.nobracket===!0||c&&c.type==="bracket"&&c.value.length===1){v({type:"text",value:u,output:`\\${u}`});continue}if(l.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(de("opening","["));v({type:"text",value:u,output:`\\${u}`});continue}ue("brackets");let d=c.value.slice(1);if(c.posix!==!0&&d[0]==="^"&&!d.includes("/")&&(u=`/${u}`),c.value+=u,Ce({value:u}),r.literalBrackets===!1||J.hasRegexChars(d))continue;let S=J.escapeRegex(c.value);if(l.output=l.output.slice(0,-c.value.length),r.literalBrackets===!0){l.output+=S,c.value=S;continue}c.value=`(${o}${S}|${c.value})`,l.output+=c.value;continue}if(u==="{"&&r.nobrace!==!0){we("braces");let d={type:"brace",value:u,output:"(",outputIndex:l.output.length,tokensIndex:l.tokens.length};w.push(d),v(d);continue}if(u==="}"){let d=w[w.length-1];if(r.nobrace===!0||!d){v({type:"text",value:u,output:u});continue}let S=")";if(d.dots===!0){let P=i.slice(),F=[];for(let q=P.length-1;q>=0&&(i.pop(),P[q].type!=="brace");q--)P[q].type!=="dots"&&F.unshift(P[q].value);S=jn(F,r),l.backtrack=!0}if(d.comma!==!0&&d.dots!==!0){let P=l.output.slice(0,d.outputIndex),F=l.tokens.slice(d.tokensIndex);d.value=d.output="\\{",u=S="\\}",l.output=P;for(let q of F)l.output+=q.output||q.value}v({type:"brace",value:u,output:S}),ue("braces"),w.pop();continue}if(u==="|"){H.length>0&&H[H.length-1].conditions++,v({type:"text",value:u});continue}if(u===","){let d=u,S=w[w.length-1];S&&j[j.length-1]==="braces"&&(S.comma=!0,d="|"),v({type:"comma",value:u,output:d});continue}if(u==="/"){if(c.type==="dot"&&l.index===l.start+1){l.start=l.index+1,l.consumed="",l.output="",i.pop(),c=a;continue}v({type:"slash",value:u,output:k});continue}if(u==="."){if(l.braces>0&&c.type==="dot"){c.value==="."&&(c.output=A);let d=w[w.length-1];c.type="dots",c.output+=u,c.value+=u,d.dots=!0;continue}if(l.braces+l.parens===0&&c.type!=="bos"&&c.type!=="slash"){v({type:"text",value:u,output:A});continue}v({type:"dot",value:u,output:A});continue}if(u==="?"){if(!(c&&c.value==="(")&&r.noextglob!==!0&&$()==="("&&$(2)!=="?"){Se("qmark",u);continue}if(c&&c.type==="paren"){let S=$(),P=u;if(S==="<"&&!J.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(c.value==="("&&!/[!=<:]/.test(S)||S==="<"&&!/<([!=]|\w+>)/.test(se()))&&(P=`\\${u}`),v({type:"text",value:u,output:P});continue}if(r.dot!==!0&&(c.type==="slash"||c.type==="bos")){v({type:"qmark",value:u,output:W});continue}v({type:"qmark",value:u,output:O});continue}if(u==="!"){if(r.noextglob!==!0&&$()==="("&&($(2)!=="?"||!/[!=<:]/.test($(3)))){Se("negate",u);continue}if(r.nonegate!==!0&&l.index===0){xr();continue}}if(u==="+"){if(r.noextglob!==!0&&$()==="("&&$(2)!=="?"){Se("plus",u);continue}if(c&&c.value==="("||r.regex===!1){v({type:"plus",value:u,output:p});continue}if(c&&(c.type==="bracket"||c.type==="paren"||c.type==="brace")||l.parens>0){v({type:"plus",value:u});continue}v({type:"plus",value:p});continue}if(u==="@"){if(r.noextglob!==!0&&$()==="("&&$(2)!=="?"){v({type:"at",extglob:!0,value:u,output:""});continue}v({type:"text",value:u});continue}if(u!=="*"){(u==="$"||u==="^")&&(u=`\\${u}`);let d=Kn.exec(se());d&&(u+=d[0],l.index+=d[0].length),v({type:"text",value:u});continue}if(c&&(c.type==="globstar"||c.star===!0)){c.type="star",c.star=!0,c.value+=u,c.output=M,l.backtrack=!0,l.globstar=!0,z(u);continue}let m=se();if(r.noextglob!==!0&&/^\([^?]/.test(m)){Se("star",u);continue}if(c.type==="star"){if(r.noglobstar===!0){z(u);continue}let d=c.prev,S=d.prev,P=d.type==="slash"||d.type==="bos",F=S&&(S.type==="star"||S.type==="globstar");if(r.bash===!0&&(!P||m[0]&&m[0]!=="/")){v({type:"star",value:u,output:""});continue}let q=l.braces>0&&(d.type==="comma"||d.type==="brace"),Me=H.length&&(d.type==="pipe"||d.type==="paren");if(!P&&d.type!=="paren"&&!q&&!Me){v({type:"star",value:u,output:""});continue}for(;m.slice(0,3)==="/**";){let ve=e[l.index+4];if(ve&&ve!=="/")break;m=m.slice(3),z("/**",3)}if(d.type==="bos"&&I()){c.type="globstar",c.value+=u,c.output=E(r),l.output=c.output,l.globstar=!0,z(u);continue}if(d.type==="slash"&&d.prev.type!=="bos"&&!F&&I()){l.output=l.output.slice(0,-(d.output+c.output).length),d.output=`(?:${d.output}`,c.type="globstar",c.output=E(r)+(r.strictSlashes?")":"|$)"),c.value+=u,l.globstar=!0,l.output+=d.output+c.output,z(u);continue}if(d.type==="slash"&&d.prev.type!=="bos"&&m[0]==="/"){let ve=m[1]!==void 0?"|$":"";l.output=l.output.slice(0,-(d.output+c.output).length),d.output=`(?:${d.output}`,c.type="globstar",c.output=`${E(r)}${k}|${k}${ve})`,c.value+=u,l.output+=d.output+c.output,l.globstar=!0,z(u+ee()),v({type:"slash",value:"/",output:""});continue}if(d.type==="bos"&&m[0]==="/"){c.type="globstar",c.value+=u,c.output=`(?:^|${k}|${E(r)}${k})`,l.output=c.output,l.globstar=!0,z(u+ee()),v({type:"slash",value:"/",output:""});continue}l.output=l.output.slice(0,-c.output.length),c.type="globstar",c.output=E(r),c.value+=u,l.output+=c.output,l.globstar=!0,z(u);continue}let L={type:"star",value:u,output:M};if(r.bash===!0){L.output=".*?",(c.type==="bos"||c.type==="slash")&&(L.output=b+L.output),v(L);continue}if(c&&(c.type==="bracket"||c.type==="paren")&&r.regex===!0){L.output=u,v(L);continue}(l.index===l.start||c.type==="slash"||c.type==="dot")&&(c.type==="dot"?(l.output+=x,c.output+=x):r.dot===!0?(l.output+=T,c.output+=T):(l.output+=b,c.output+=b),$()!=="*"&&(l.output+=y,c.output+=y)),v(L)}for(;l.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(de("closing","]"));l.output=J.escapeLast(l.output,"["),ue("brackets")}for(;l.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(de("closing",")"));l.output=J.escapeLast(l.output,"("),ue("parens")}for(;l.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(de("closing","}"));l.output=J.escapeLast(l.output,"{"),ue("braces")}if(r.strictSlashes!==!0&&(c.type==="star"||c.type==="bracket")&&v({type:"maybe_slash",value:"",output:`${k}?`}),l.backtrack===!0){l.output="";for(let m of l.tokens)l.output+=m.output!=null?m.output:m.value,m.suffix&&(l.output+=m.suffix)}return l};nr.fastpaths=(e,t)=>{let r=B({},t),n=typeof r.maxLength=="number"?Math.min(Ne,r.maxLength):Ne,s=e.length;if(s>n)throw new SyntaxError(`Input length: ${s}, exceeds maximum allowed length: ${n}`);e=rr[e]||e;let a=J.isWindows(t),{DOT_LITERAL:i,SLASH_LITERAL:o,ONE_CHAR:h,DOTS_SLASH:g,NO_DOT:f,NO_DOTS:A,NO_DOTS_SLASH:p,STAR:k,START_ANCHOR:y}=Oe.globChars(a),R=r.dot?A:f,_=r.dot?p:f,x=r.capture?"":"?:",T={negated:!1,prefix:""},O=r.bash===!0?".*?":k;r.capture&&(O=`(${O})`);let W=b=>b.noglobstar===!0?O:`(${x}(?:(?!${y}${b.dot?g:i}).)*?)`,G=b=>{switch(b){case"*":return`${R}${h}${O}`;case".*":return`${i}${h}${O}`;case"*.*":return`${R}${O}${i}${h}${O}`;case"*/*":return`${R}${O}${o}${h}${_}${O}`;case"**":return R+W(r);case"**/*":return`(?:${R}${W(r)}${o})?${_}${h}${O}`;case"**/*.*":return`(?:${R}${W(r)}${o})?${_}${O}${i}${h}${O}`;case"**/.*":return`(?:${R}${W(r)}${o})?${i}${h}${O}`;default:{let C=/^(.*?)\.(\w+)$/.exec(b);if(!C)return;let M=G(C[1]);return M?M+i+C[2]:void 0}}},ne=J.removePrefix(e,T),E=G(ne);return E&&r.strictSlashes!==!0&&(E+=`${o}?`),E};tr.exports=nr});var ir=K((ys,ar)=>{"use strict";var Fn=require("path"),Qn=er(),Ye=sr(),ze=be(),Xn=ye(),Zn=e=>e&&typeof e=="object"&&!Array.isArray(e),D=(e,t,r=!1)=>{if(Array.isArray(e)){let f=e.map(p=>D(p,t,r));return p=>{for(let k of f){let y=k(p);if(y)return y}return!1}}let n=Zn(e)&&e.tokens&&e.input;if(e===""||typeof e!="string"&&!n)throw new TypeError("Expected pattern to be a non-empty string");let s=t||{},a=ze.isWindows(t),i=n?D.compileRe(e,t):D.makeRe(e,t,!1,!0),o=i.state;delete i.state;let h=()=>!1;if(s.ignore){let f=Q(B({},t),{ignore:null,onMatch:null,onResult:null});h=D(s.ignore,f,r)}let g=(f,A=!1)=>{let{isMatch:p,match:k,output:y}=D.test(f,i,t,{glob:e,posix:a}),R={glob:e,state:o,regex:i,posix:a,input:f,output:y,match:k,isMatch:p};return typeof s.onResult=="function"&&s.onResult(R),p===!1?(R.isMatch=!1,A?R:!1):h(f)?(typeof s.onIgnore=="function"&&s.onIgnore(R),R.isMatch=!1,A?R:!1):(typeof s.onMatch=="function"&&s.onMatch(R),A?R:!0)};return r&&(g.state=o),g};D.test=(e,t,r,{glob:n,posix:s}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return{isMatch:!1,output:""};let a=r||{},i=a.format||(s?ze.toPosixSlashes:null),o=e===n,h=o&&i?i(e):e;return o===!1&&(h=i?i(e):e,o=h===n),(o===!1||a.capture===!0)&&(a.matchBase===!0||a.basename===!0?o=D.matchBase(e,t,r,s):o=t.exec(h)),{isMatch:Boolean(o),match:o,output:h}};D.matchBase=(e,t,r,n=ze.isWindows(r))=>(t instanceof RegExp?t:D.makeRe(t,r)).test(Fn.basename(e));D.isMatch=(e,t,r)=>D(t,r)(e);D.parse=(e,t)=>Array.isArray(e)?e.map(r=>D.parse(r,t)):Ye(e,Q(B({},t),{fastpaths:!1}));D.scan=(e,t)=>Qn(e,t);D.compileRe=(e,t,r=!1,n=!1)=>{if(r===!0)return e.output;let s=t||{},a=s.contains?"":"^",i=s.contains?"":"$",o=`${a}(?:${e.output})${i}`;e&&e.negated===!0&&(o=`^(?!${o}).*$`);let h=D.toRegex(o,t);return n===!0&&(h.state=e),h};D.makeRe=(e,t={},r=!1,n=!1)=>{if(!e||typeof e!="string")throw new TypeError("Expected a non-empty string");let s={negated:!1,fastpaths:!0};return t.fastpaths!==!1&&(e[0]==="."||e[0]==="*")&&(s.output=Ye.fastpaths(e,t)),s.output||(s=Ye(e,t)),D.compileRe(s,t,r,n)};D.toRegex=(e,t)=>{try{let r=t||{};return new RegExp(e,r.flags||(r.nocase?"i":""))}catch(r){if(t&&t.debug===!0)throw r;return/$^/}};D.constants=Xn;ar.exports=D});var cr=K((bs,or)=>{"use strict";or.exports=ir()});var hr=K((_s,ur)=>{"use strict";var lr=require("util"),pr=Gt(),oe=cr(),Ve=be(),fr=e=>e===""||e==="./",N=(e,t,r)=>{t=[].concat(t),e=[].concat(e);let n=new Set,s=new Set,a=new Set,i=0,o=f=>{a.add(f.output),r&&r.onResult&&r.onResult(f)};for(let f=0;f!n.has(f));if(r&&g.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${t.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?t.map(f=>f.replace(/\\/g,"")):t}return g};N.match=N;N.matcher=(e,t)=>oe(e,t);N.isMatch=(e,t,r)=>oe(t,r)(e);N.any=N.isMatch;N.not=(e,t,r={})=>{t=[].concat(t).map(String);let n=new Set,s=[],a=o=>{r.onResult&&r.onResult(o),s.push(o.output)},i=N(e,t,Q(B({},r),{onResult:a}));for(let o of s)i.includes(o)||n.add(o);return[...n]};N.contains=(e,t,r)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${lr.inspect(e)}"`);if(Array.isArray(t))return t.some(n=>N.contains(e,n,r));if(typeof t=="string"){if(fr(e)||fr(t))return!1;if(e.includes(t)||e.startsWith("./")&&e.slice(2).includes(t))return!0}return N.isMatch(e,t,Q(B({},r),{contains:!0}))};N.matchKeys=(e,t,r)=>{if(!Ve.isObject(e))throw new TypeError("Expected the first argument to be an object");let n=N(Object.keys(e),t,r),s={};for(let a of n)s[a]=e[a];return s};N.some=(e,t,r)=>{let n=[].concat(e);for(let s of[].concat(t)){let a=oe(String(s),r);if(n.some(i=>a(i)))return!0}return!1};N.every=(e,t,r)=>{let n=[].concat(e);for(let s of[].concat(t)){let a=oe(String(s),r);if(!n.every(i=>a(i)))return!1}return!0};N.all=(e,t,r)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${lr.inspect(e)}"`);return[].concat(t).every(n=>oe(n,r)(e))};N.capture=(e,t,r)=>{let n=Ve.isWindows(r),a=oe.makeRe(String(e),Q(B({},r),{capture:!0})).exec(n?Ve.toPosixSlashes(t):t);if(a)return a.slice(1).map(i=>i===void 0?"":i)};N.makeRe=(...e)=>oe.makeRe(...e);N.scan=(...e)=>oe.scan(...e);N.parse=(e,t)=>{let r=[];for(let n of[].concat(e||[]))for(let s of pr(String(n),t))r.push(oe.parse(s,t));return r};N.braces=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return t&&t.nobrace===!0||!/\{.*\}/.test(e)?[e]:pr(e,t)};N.braceExpand=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return N.braces(e,Q(B({},t),{expand:!0}))};ur.exports=N});var gr=K((Es,dr)=>{"use strict";dr.exports=(e,...t)=>new Promise(r=>{r(e(...t))})});var Ar=K((xs,Je)=>{"use strict";var Yn=gr(),mr=e=>{if(e<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let t=[],r=0,n=()=>{r--,t.length>0&&t.shift()()},s=(o,h,...g)=>{r++;let f=Yn(o,...g);h(f),f.then(n,n)},a=(o,h,...g)=>{rnew Promise(g=>a(o,g,...h));return Object.defineProperties(i,{activeCount:{get:()=>r},pendingCount:{get:()=>t.length}}),i};Je.exports=mr;Je.exports.default=mr});var Vn={};Or(Vn,{default:()=>es});var He=X(require("@yarnpkg/cli")),ae=X(require("@yarnpkg/core")),nt=X(require("@yarnpkg/core")),le=X(require("clipanion")),Ae=class extends He.BaseCommand{constructor(){super(...arguments);this.json=le.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.production=le.Option.Boolean("--production",!1,{description:"Only install regular dependencies by omitting dev dependencies"});this.all=le.Option.Boolean("-A,--all",!1,{description:"Install the entire project"});this.workspaces=le.Option.Rest()}async execute(){let t=await ae.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await ae.Project.find(t,this.context.cwd),s=await ae.Cache.find(t);await r.restoreInstallState({restoreResolutions:!1});let a;if(this.all)a=new Set(r.workspaces);else if(this.workspaces.length===0){if(!n)throw new He.WorkspaceRequiredError(r.cwd,this.context.cwd);a=new Set([n])}else a=new Set(this.workspaces.map(o=>r.getWorkspaceByIdent(nt.structUtils.parseIdent(o))));for(let o of a)for(let h of this.production?["dependencies"]:ae.Manifest.hardDependencies)for(let g of o.manifest.getForScope(h).values()){let f=r.tryWorkspaceByDescriptor(g);f!==null&&a.add(f)}for(let o of r.workspaces)a.has(o)?this.production&&o.manifest.devDependencies.clear():(o.manifest.installConfig=o.manifest.installConfig||{},o.manifest.installConfig.selfReferences=!1,o.manifest.dependencies.clear(),o.manifest.devDependencies.clear(),o.manifest.peerDependencies.clear(),o.manifest.scripts.clear());return(await ae.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!0},async o=>{await r.install({cache:s,report:o,persistProject:!1})})).exitCode()}};Ae.paths=[["workspaces","focus"]],Ae.usage=le.Command.Usage({category:"Workspace-related commands",description:"install a single workspace and its dependencies",details:"\n This command will run an install as if the specified workspaces (and all other workspaces they depend on) were the only ones in the project. If no workspaces are explicitly listed, the active one will be assumed.\n\n Note that this command is only very moderately useful when using zero-installs, since the cache will contain all the packages anyway - meaning that the only difference between a full install and a focused install would just be a few extra lines in the `.pnp.cjs` file, at the cost of introducing an extra complexity.\n\n If the `-A,--all` flag is set, the entire project will be installed. Combine with `--production` to replicate the old `yarn install --production`.\n "});var st=Ae;var Ie=X(require("@yarnpkg/cli")),ge=X(require("@yarnpkg/core")),Ee=X(require("@yarnpkg/core")),Y=X(require("@yarnpkg/core")),Rr=X(require("@yarnpkg/plugin-git")),U=X(require("clipanion")),Be=X(hr()),yr=X(require("os")),br=X(Ar()),re=X(require("typanion")),xe=class extends Ie.BaseCommand{constructor(){super(...arguments);this.recursive=U.Option.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.from=U.Option.Array("--from",[],{description:"An array of glob pattern idents from which to base any recursion"});this.all=U.Option.Boolean("-A,--all",!1,{description:"Run the command on all workspaces of a project"});this.verbose=U.Option.Boolean("-v,--verbose",!1,{description:"Prefix each output line with the name of the originating workspace"});this.parallel=U.Option.Boolean("-p,--parallel",!1,{description:"Run the commands in parallel"});this.interlaced=U.Option.Boolean("-i,--interlaced",!1,{description:"Print the output of commands in real-time instead of buffering it"});this.jobs=U.Option.String("-j,--jobs",{description:"The maximum number of parallel tasks that the execution will be limited to; or `unlimited`",validator:re.isOneOf([re.isEnum(["unlimited"]),re.applyCascade(re.isNumber(),[re.isInteger(),re.isAtLeast(1)])])});this.topological=U.Option.Boolean("-t,--topological",!1,{description:"Run the command after all workspaces it depends on (regular) have finished"});this.topologicalDev=U.Option.Boolean("--topological-dev",!1,{description:"Run the command after all workspaces it depends on (regular + dev) have finished"});this.include=U.Option.Array("--include",[],{description:"An array of glob pattern idents; only matching workspaces will be traversed"});this.exclude=U.Option.Array("--exclude",[],{description:"An array of glob pattern idents; matching workspaces won't be traversed"});this.publicOnly=U.Option.Boolean("--no-private",{description:"Avoid running the command on private workspaces"});this.since=U.Option.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.commandName=U.Option.String();this.args=U.Option.Proxy()}async execute(){let t=await ge.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await ge.Project.find(t,this.context.cwd);if(!this.all&&!n)throw new Ie.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let s=this.cli.process([this.commandName,...this.args]),a=s.path.length===1&&s.path[0]==="run"&&typeof s.scriptName!="undefined"?s.scriptName:null;if(s.path.length===0)throw new U.UsageError("Invalid subcommand name for iteration - use the 'run' keyword if you wish to execute a script");let i=this.all?r.topLevelWorkspace:n,o=this.since?Array.from(await Rr.gitUtils.fetchChangedWorkspaces({ref:this.since,project:r})):[i,...this.from.length>0?i.getRecursiveWorkspaceChildren():[]],h=E=>Be.default.isMatch(Y.structUtils.stringifyIdent(E.locator),this.from),g=this.from.length>0?o.filter(h):o,f=new Set([...g,...g.map(E=>[...this.recursive?this.since?E.getRecursiveWorkspaceDependents():E.getRecursiveWorkspaceDependencies():E.getRecursiveWorkspaceChildren()]).flat()]),A=[],p=!1;if(a==null?void 0:a.includes(":")){for(let E of r.workspaces)if(E.manifest.scripts.has(a)&&(p=!p,p===!1))break}for(let E of f)a&&!E.manifest.scripts.has(a)&&!p&&!(await ge.scriptUtils.getWorkspaceAccessibleBinaries(E)).has(a)||a===process.env.npm_lifecycle_event&&E.cwd===n.cwd||this.include.length>0&&!Be.default.isMatch(Y.structUtils.stringifyIdent(E.locator),this.include)||this.exclude.length>0&&Be.default.isMatch(Y.structUtils.stringifyIdent(E.locator),this.exclude)||this.publicOnly&&E.manifest.private===!0||A.push(E);let k=this.parallel?this.jobs==="unlimited"?Infinity:Number(this.jobs)||Math.max(1,(0,yr.cpus)().length/2):1,y=k===1?!1:this.parallel,R=y?this.interlaced:!0,_=(0,br.default)(k),x=new Map,T=new Set,O=0,W=null,G=!1,ne=await Ee.StreamReport.start({configuration:t,stdout:this.context.stdout},async E=>{let b=async(C,{commandIndex:M})=>{if(G)return-1;!y&&this.verbose&&M>1&&E.reportSeparator();let l=zn(C,{configuration:t,verbose:this.verbose,commandIndex:M}),[H,w]=_r(E,{prefix:l,interlaced:R}),[j,c]=_r(E,{prefix:l,interlaced:R});try{this.verbose&&E.reportInfo(null,`${l} Process started`);let u=Date.now(),I=await this.cli.run([this.commandName,...this.args],{cwd:C.cwd,stdout:H,stderr:j})||0;H.end(),j.end(),await w,await c;let $=Date.now();if(this.verbose){let ee=t.get("enableTimers")?`, completed in ${Y.formatUtils.pretty(t,$-u,Y.formatUtils.Type.DURATION)}`:"";E.reportInfo(null,`${l} Process exited (exit code ${I})${ee}`)}return I===130&&(G=!0,W=I),I}catch(u){throw H.end(),j.end(),await w,await c,u}};for(let C of A)x.set(C.anchoredLocator.locatorHash,C);for(;x.size>0&&!E.hasErrors();){let C=[];for(let[H,w]of x){if(T.has(w.anchoredDescriptor.descriptorHash))continue;let j=!0;if(this.topological||this.topologicalDev){let c=this.topologicalDev?new Map([...w.manifest.dependencies,...w.manifest.devDependencies]):w.manifest.dependencies;for(let u of c.values()){let I=r.tryWorkspaceByDescriptor(u);if(j=I===null||!x.has(I.anchoredLocator.locatorHash),!j)break}}if(!!j&&(T.add(w.anchoredDescriptor.descriptorHash),C.push(_(async()=>{let c=await b(w,{commandIndex:++O});return x.delete(H),T.delete(w.anchoredDescriptor.descriptorHash),c})),!y))break}if(C.length===0){let H=Array.from(x.values()).map(w=>Y.structUtils.prettyLocator(t,w.anchoredLocator)).join(", ");E.reportError(Ee.MessageName.CYCLIC_DEPENDENCIES,`Dependency cycle detected (${H})`);return}let l=(await Promise.all(C)).find(H=>H!==0);W===null&&(W=typeof l!="undefined"?1:W),(this.topological||this.topologicalDev)&&typeof l!="undefined"&&E.reportError(Ee.MessageName.UNNAMED,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return W!==null?W:ne.exitCode()}};xe.paths=[["workspaces","foreach"]],xe.usage=U.Command.Usage({category:"Workspace-related commands",description:"run a command on all workspaces",details:"\n This command will run a given sub-command on current and all its descendant workspaces. Various flags can alter the exact behavior of the command:\n\n - If `-p,--parallel` is set, the commands will be ran in parallel; they'll by default be limited to a number of parallel tasks roughly equal to half your core number, but that can be overridden via `-j,--jobs`, or disabled by setting `-j unlimited`.\n\n - If `-p,--parallel` and `-i,--interlaced` are both set, Yarn will print the lines from the output as it receives them. If `-i,--interlaced` wasn't set, it would instead buffer the output from each process and print the resulting buffers only after their source processes have exited.\n\n - If `-t,--topological` is set, Yarn will only run the command after all workspaces that it depends on through the `dependencies` field have successfully finished executing. If `--topological-dev` is set, both the `dependencies` and `devDependencies` fields will be considered when figuring out the wait points.\n\n - If `-A,--all` is set, Yarn will run the command on all the workspaces of a project. By default yarn runs the command only on current and all its descendant workspaces.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--from` is set, Yarn will use the packages matching the 'from' glob as the starting point for any recursive search.\n\n - If `--since` is set, Yarn will only run the command on workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - The command may apply to only some workspaces through the use of `--include` which acts as a whitelist. The `--exclude` flag will do the opposite and will be a list of packages that mustn't execute the script. Both flags accept glob patterns (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n Adding the `-v,--verbose` flag will cause Yarn to print more information; in particular the name of the workspace that generated the output will be printed at the front of each line.\n\n If the command is `run` and the script being run does not exist the child workspace will be skipped without error.\n ",examples:[["Publish current and all descendant packages","yarn workspaces foreach npm publish --tolerate-republish"],["Run build script on current and all descendant packages","yarn workspaces foreach run build"],["Run build script on current and all descendant packages in parallel, building package dependencies first","yarn workspaces foreach -pt run build"],["Run build script on several packages and all their dependencies, building dependencies first","yarn workspaces foreach -ptR --from '{workspace-a,workspace-b}' run build"]]});var Er=xe;function _r(e,{prefix:t,interlaced:r}){let n=e.createStreamReporter(t),s=new Y.miscUtils.DefaultStream;s.pipe(n,{end:!1}),s.on("finish",()=>{n.end()});let a=new Promise(o=>{n.on("finish",()=>{o(s.active)})});if(r)return[s,a];let i=new Y.miscUtils.BufferStream;return i.pipe(s,{end:!1}),i.on("finish",()=>{s.end()}),[i,a]}function zn(e,{configuration:t,commandIndex:r,verbose:n}){if(!n)return null;let s=Y.structUtils.convertToIdent(e.locator),i=`[${Y.structUtils.stringifyIdent(s)}]:`,o=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],h=o[r%o.length];return Y.formatUtils.pretty(t,i,h)}var Jn={commands:[st,Er]},es=Jn;return Vn;})(); +/*! + * fill-range + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Licensed under the MIT License. + */ +/*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + */ +/*! + * to-regex-range + * + * Copyright (c) 2015-present, Jon Schlinkert. + * Released under the MIT License. + */ +return plugin; +} +}; diff --git a/.yarnrc.yml b/.yarnrc.yml index 7fe1872..3a5eed8 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -1,3 +1,7 @@ nodeLinker: node-modules +plugins: + - path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs + spec: "@yarnpkg/plugin-workspace-tools" + yarnPath: .yarn/releases/yarn-3.2.3.cjs diff --git a/Makefile b/Makefile index 69c67cc..3da774b 100644 --- a/Makefile +++ b/Makefile @@ -23,7 +23,7 @@ typecheck: ## Typecheck the project yarn typecheck build: clean-dist ## Create tarballs of CLI - yarn build && yarn set version classic && npx oclif pack tarballs -t $(BUILD_TARGETS) + yarn oclif pack tarballs -t $(BUILD_TARGETS) $(MAKE) generate-wsl-cli generate-wsl-cli: ## Generate WSL version of CLI @@ -33,19 +33,19 @@ generate-wsl-cli: ## Generate WSL version of CLI sed -i 's/linux/wsl/g' ./dist/greenframe-v$(PACKAGE_VERSION)-$(SHORT_HASH)-wsl-x64-buildmanifest upload: ## Upload tarballs to S3 bucket - npx oclif upload tarballs -t $(DEPLOY_TARGETS) + yarn oclif upload tarballs -t $(DEPLOY_TARGETS) promote-staging: ## Publish uploaded tarballs on a staging channel - npx oclif promote --version $(PACKAGE_VERSION) --sha $(SHORT_HASH) --channel staging -t $(DEPLOY_TARGETS) && yarn set version stable + yarn oclif promote --version $(PACKAGE_VERSION) --sha $(SHORT_HASH) --channel staging -t $(DEPLOY_TARGETS) promote-prerelease: ## Publish uploaded tarballs on a prerelease channel - npx oclif promote --version $(PACKAGE_VERSION) --sha $(SHORT_HASH) --channel prerelease -t $(DEPLOY_TARGETS) && yarn set version stable + yarn oclif promote --version $(PACKAGE_VERSION) --sha $(SHORT_HASH) --channel prerelease -t $(DEPLOY_TARGETS) upload-installation-scripts: ## Publish on the bucket installion bash scripts yarn upload-installation-scripts promote-production: upload-installation-scripts ## Publish uploaded tarballs on a stable channel - npx oclif promote --version $(PACKAGE_VERSION) --sha $(SHORT_HASH) -t $(DEPLOY_TARGETS) && yarn set version stable + yarn oclif promote --version $(PACKAGE_VERSION) --sha $(SHORT_HASH) -t $(DEPLOY_TARGETS) test: test-unit test-e2e ## Launch all tests diff --git a/README.md b/README.md index 443f8d9..3f7c7b9 100644 --- a/README.md +++ b/README.md @@ -226,8 +226,10 @@ This means that the lowest hanging fruit for optimizing the emissions of a web p * [`greenframe analyze [BASEURL] [SCENARIO]`](#greenframe-analyze-baseurl-scenario) +* [`greenframe autocomplete [SHELL]`](#greenframe-autocomplete-shell) +* [`greenframe help [COMMAND]`](#greenframe-help-command) * [`greenframe kube-config`](#greenframe-kube-config) -* [`greenframe open [BASEURL] [SCENARIO]`](#greenframe-open-baseurl-scenario) +* [`greenframe open [BASEURL] [SCENARIOS]`](#greenframe-open-baseurl-scenarios) * [`greenframe update [CHANNEL]`](#greenframe-update-channel) ## `greenframe analyze [BASEURL] [SCENARIO]` @@ -246,32 +248,83 @@ ARGUMENTS SCENARIO Path to your GreenFrame scenario FLAGS - -C, --configFile= Path to config file - -E, --envFile= File of environment vars - -K, --kubeConfig= Path to kubernetes client config file - -a, --useAdblock Use an adblocker during analysis - -b, --branchName= Pass branch name manually - -c, --commitMessage= Pass commit message manually - -e, --envVar=... List of environment vars to read in the scenarios - -i, --ignoreHTTPSErrors Ignore HTTPS errors during analysis - -p, --projectName= Project name - -s, --samples= Number of runs done for the score computation - -t, --threshold= Consumption threshold - --commitId= Pass commit id manually - --containers= Pass containers manually - --databaseContainers= Pass database containers manually - --dockerdHost= Docker daemon host - --dockerdPort= Docker daemon port - --kubeContainers= Pass kubebernetes containers manually - --kubeDatabaseContainers= Pass kubebernetes database containers manually - --locale Set greenframe browser locale - --timezoneId Set greenframe browser timezoneId + -C, --configFile= Path to config file + -E, --envFile= File of environment vars + -K, --kubeConfig= Path to kubernetes client config file + -a, --useAdblock Use an adblocker during analysis + -b, --branchName= Pass branch name manually + -c, --commitMessage= Pass commit message manually + -e, --envVar=... List of environment vars to read in the scenarios + -i, --ignoreHTTPSErrors Ignore HTTPS errors during analysis + -p, --projectName= Project name + -s, --samples= Number of runs done for the score computation + -t, --threshold= Consumption threshold + --commitId= Pass commit id manually + --containers= Pass containers manually + --databaseContainers= Pass database containers manually + --dockerdHost= Docker daemon host + --dockerdPort= Docker daemon port + --kubeContainers= Pass kubebernetes containers manually + --kubeDatabaseContainers= Pass kubebernetes database containers manually + --locale Set greenframe browser locale + --timezoneId Set greenframe browser timezoneId DESCRIPTION Create an analysis on GreenFrame server. ``` -_See code: [dist/commands/analyze.ts](https://github.com/marmelab/greenframe-cli/blob/v1.7.0/dist/commands/analyze.ts)_ +_See code: [src/commands/analyze.ts](https://github.com/marmelab/greenframe-cli/blob/v2.0.0/src/commands/analyze.ts)_ + +## `greenframe autocomplete [SHELL]` + +Display autocomplete installation instructions. + +``` +USAGE + $ greenframe autocomplete [SHELL] [-r] + +ARGUMENTS + SHELL (zsh|bash|powershell) Shell type + +FLAGS + -r, --refresh-cache Refresh cache (ignores displaying instructions) + +DESCRIPTION + Display autocomplete installation instructions. + +EXAMPLES + $ greenframe autocomplete + + $ greenframe autocomplete bash + + $ greenframe autocomplete zsh + + $ greenframe autocomplete powershell + + $ greenframe autocomplete --refresh-cache +``` + +_See code: [@oclif/plugin-autocomplete](https://github.com/oclif/plugin-autocomplete/blob/v3.0.13/src/commands/autocomplete/index.ts)_ + +## `greenframe help [COMMAND]` + +Display help for greenframe. + +``` +USAGE + $ greenframe help [COMMAND...] [-n] + +ARGUMENTS + COMMAND... Command to show help for. + +FLAGS + -n, --nested-commands Include all nested commands in the output. + +DESCRIPTION + Display help for greenframe. +``` + +_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v6.0.18/src/commands/help.ts)_ ## `greenframe kube-config` @@ -292,26 +345,26 @@ DESCRIPTION greenframe kube-config ``` -_See code: [dist/commands/kube-config.ts](https://github.com/marmelab/greenframe-cli/blob/v1.7.0/dist/commands/kube-config.ts)_ +_See code: [src/commands/kube-config.ts](https://github.com/marmelab/greenframe-cli/blob/v2.0.0/src/commands/kube-config.ts)_ -## `greenframe open [BASEURL] [SCENARIO]` +## `greenframe open [BASEURL] [SCENARIOS]` Open browser to develop your GreenFrame scenario ``` USAGE - $ greenframe open [BASEURL] [SCENARIO] [-C ] [-a] [--ignoreHTTPSErrors] [--locale] [--timezoneId] + $ greenframe open [BASEURL] [SCENARIOS] [-C ] [-a] [--ignoreHTTPSErrors] [--locale] [--timezoneId] ARGUMENTS - BASEURL Your baseURL website - SCENARIO Path to your GreenFrame scenario + BASEURL Your baseURL website + SCENARIOS Path to your GreenFrame scenario FLAGS -C, --configFile= Path to config file -a, --useAdblock Use an adblocker during analysis - --ignoreHTTPSErrors Ignore HTTPS errors during analysis - --locale Set greenframe browser locale - --timezoneId Set greenframe browser timezoneId + --ignoreHTTPSErrors Ignore HTTPS errors during analysis + --locale Set greenframe browser locale + --timezoneId Set greenframe browser timezoneId DESCRIPTION Open browser to develop your GreenFrame scenario @@ -319,7 +372,7 @@ DESCRIPTION greenframe analyze ./yourScenario.js https://greenframe.io ``` -_See code: [dist/commands/open.ts](https://github.com/marmelab/greenframe-cli/blob/v1.7.0/dist/commands/open.ts)_ +_See code: [src/commands/open.ts](https://github.com/marmelab/greenframe-cli/blob/v2.0.0/src/commands/open.ts)_ ## `greenframe update [CHANNEL]` @@ -338,7 +391,7 @@ DESCRIPTION greenframe update ``` -_See code: [dist/commands/update.ts](https://github.com/marmelab/greenframe-cli/blob/v1.7.0/dist/commands/update.ts)_ +_See code: [src/commands/update.ts](https://github.com/marmelab/greenframe-cli/blob/v2.0.0/src/commands/update.ts)_ ## Development @@ -358,7 +411,7 @@ $ yarn build Then you can run the CLI: ```sh -$ ./bin/run analyze https://greenframe.io ./src/examples/visit.js +$ ./bin/run analyze https://greenframe.io ./src/examples/visit.cjs ``` While developing, instead of running `yarn build` each time you make a change, you can watch for changes and automatically recompile with: diff --git a/bin/dev.cmd b/bin/dev.cmd new file mode 100644 index 0000000..cec553b --- /dev/null +++ b/bin/dev.cmd @@ -0,0 +1,3 @@ +@echo off + +node --loader ts-node/esm --no-warnings=ExperimentalWarning "%~dp0\dev" %* diff --git a/bin/dev.js b/bin/dev.js new file mode 100755 index 0000000..714fc26 --- /dev/null +++ b/bin/dev.js @@ -0,0 +1,5 @@ +#!/usr/bin/env -S node --loader ts-node/esm --no-warnings=ExperimentalWarning + +import { execute } from '@oclif/core'; + +await execute({ development: true, dir: import.meta.url }); diff --git a/bin/run b/bin/run deleted file mode 100755 index 0eca115..0000000 --- a/bin/run +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env node - -const oclif = require('@oclif/core'); - -oclif.run().then(require('@oclif/core/flush')).catch(require('@oclif/core/handle')); diff --git a/bin/run.js b/bin/run.js new file mode 100755 index 0000000..176d2af --- /dev/null +++ b/bin/run.js @@ -0,0 +1,5 @@ +#!/usr/bin/env node + +import { execute } from '@oclif/core'; + +await execute({ dir: import.meta.url }); diff --git a/e2e/.greenframe.single.esm.yml b/e2e/.greenframe.single.esm.yml new file mode 100644 index 0000000..e5c7b43 --- /dev/null +++ b/e2e/.greenframe.single.esm.yml @@ -0,0 +1,5 @@ +scenario: '../../src/examples/marmelab.mjs' +baseURL: 'https://marmelab.com' +samples: 2 +projectName: 'Marmelab' +useAdblock: true diff --git a/e2e/greenframe.io/analyze.spec.js b/e2e/greenframe.io/analyze.spec.js index b321037..56c2756 100644 --- a/e2e/greenframe.io/analyze.spec.js +++ b/e2e/greenframe.io/analyze.spec.js @@ -1,6 +1,7 @@ /* eslint-disable jest/no-conditional-expect */ -const util = require('node:util'); -const exec = util.promisify(require('node:child_process').exec); +import { promisify } from 'node:util'; +import { exec as execSync } from 'node:child_process'; +const exec = promisify(execSync); const BASE_COMMAND = `GREENFRAME_SECRET_TOKEN=API_TOKEN API_URL=http://localhost:3006 ./bin/run analyze`; diff --git a/e2e/greenframe.io/open.spec.js b/e2e/greenframe.io/open.spec.js index b4541ce..9b5c016 100644 --- a/e2e/greenframe.io/open.spec.js +++ b/e2e/greenframe.io/open.spec.js @@ -1,6 +1,7 @@ /* eslint-disable jest/no-conditional-expect */ -const util = require('node:util'); -const exec = util.promisify(require('node:child_process').exec); +import { promisify } from 'node:util'; +import { exec as execSync } from 'node:child_process'; +const exec = promisify(execSync); const BASE_COMMAND = `GREENFRAME_SECRET_TOKEN=API_TOKEN API_URL=http://localhost:3006 ./bin/run open`; diff --git a/e2e/local/analyze.spec.js b/e2e/local/analyze.spec.js index e6b501d..0ba31ef 100644 --- a/e2e/local/analyze.spec.js +++ b/e2e/local/analyze.spec.js @@ -1,6 +1,7 @@ /* eslint-disable jest/no-conditional-expect */ -const util = require('node:util'); -const exec = util.promisify(require('node:child_process').exec); +import { promisify } from 'node:util'; +import { exec as execSync } from 'node:child_process'; +const exec = promisify(execSync); const BASE_COMMAND = `./bin/run analyze`; @@ -43,6 +44,15 @@ describe('[LOCAL] greenframe analyze', () => { expect(stdout).toContain('The estimated footprint is'); expect(error).toBeUndefined(); }); + + it('should support analysis with esm', async () => { + const { error, stdout } = await exec( + `${BASE_COMMAND} -C ./e2e/.greenframe.single.esm.yml` + ); + expect(stdout).toContain('✅ main scenario completed'); + expect(stdout).toContain('The estimated footprint is'); + expect(error).toBeUndefined(); + }); }); }); diff --git a/e2e/local/open.spec.js b/e2e/local/open.spec.js index c1ebc4f..c9f676a 100644 --- a/e2e/local/open.spec.js +++ b/e2e/local/open.spec.js @@ -1,5 +1,6 @@ -const util = require('node:util'); -const exec = util.promisify(require('node:child_process').exec); +import { promisify } from 'node:util'; +import { exec as execSync } from 'node:child_process'; +const exec = promisify(execSync); const BASE_COMMAND = `./bin/run open`; diff --git a/package.json b/package.json index b2fb1ae..520eadd 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "description": "Official GreenFrame CLI", "version": "2.0.0", "author": "Marmelab", + "type": "module", "bin": { "greenframe": "./bin/run" }, @@ -10,10 +11,12 @@ "dependencies": { "@cliqz/adblocker-playwright": "^1.25.0", "@kubernetes/client-node": "^0.17.0", - "@oclif/core": "^1.2.0", + "@oclif/core": "^3.25.0", + "@oclif/plugin-autocomplete": "^3", + "@oclif/plugin-help": "^6", "@playwright/test": "^1.30.0", "@sentry/node": "^6.13.3", - "axios": "^0.22.0", + "axios": "^1.6.7", "core-js-pure": "^3.24.0", "cross-fetch": "^3.1.4", "env-ci": "^5.0.2", @@ -22,12 +25,9 @@ "lodash": "^4.17.21", "mathjs": "^9.5.0", "minimist": "^1.2.5", - "oclif": "^2.4.3", + "oclif": "^4.5.4", "playwright": "1.30.0" }, - "resolutions": { - "oclif/**/isbinaryfile": "5.0.0" - }, "devDependencies": { "@aws-sdk/client-s3": "^3.36.0", "@babel/core": "^7.15.8", @@ -60,8 +60,9 @@ "prettier": "^2.4.1", "trace-unhandled": "^2.0.1", "ts-jest": "^28.0.7", + "ts-node": "^10.9.2", "ts-node-dev": "^2.0.0", - "typescript": "^4.7.4", + "typescript": "^5.4.2", "wait-on": "^6.0.0", "xo": "^0.52.3" }, @@ -73,7 +74,7 @@ "/npm-shrinkwrap.json", "/oclif.manifest.json", "/dist", - "/src/examples" + "/examples" ], "homepage": "https://github.com/marmelab/greenframe", "keywords": [ @@ -96,6 +97,10 @@ "commands": "./dist/commands", "dirname": "greenframe", "bin": "greenframe", + "plugins": [ + "@oclif/plugin-help", + "@oclif/plugin-autocomplete" + ], "additionalHelpFlags": [ "-h" ], @@ -124,7 +129,7 @@ "pack": "oclif pack tarballs", "analyze": "API_URL=http://localhost:3006 APP_URL=http://localhost:3003 ./bin/run analyze", "open": "API_URL=http://localhost:3006 APP_URL=http://localhost:3003 ./bin/run open", - "upload-installation-scripts": "node ./scripts/uploadInstallScript.js", + "upload-installation-scripts": "node ./scripts/uploadInstallScript.cjs", "lint": "eslint .", "typecheck": "tsc --noEmit --pretty" }, diff --git a/scripts/uploadInstallScript.js b/scripts/uploadInstallScript.cjs similarity index 100% rename from scripts/uploadInstallScript.js rename to scripts/uploadInstallScript.cjs diff --git a/src/commands/analyze.ts b/src/commands/analyze.ts index b0df33b..5315cf0 100644 --- a/src/commands/analyze.ts +++ b/src/commands/analyze.ts @@ -1,26 +1,30 @@ -import { Command, Flags } from '@oclif/core'; -import { Listr } from 'listr2'; +import { Args, Command, Flags } from '@oclif/core'; +import { Listr, ListrContext, ListrRenderer, ListrTaskWrapper } from 'listr2'; -import { saveFailedAnalysis } from '../services/api/analyses'; +import { saveFailedAnalysis } from '../services/api/analyses.js'; -import { parseConfigFile, resolveParams } from '../services/parseConfigFile'; +import { parseConfigFile, resolveParams } from '../services/parseConfigFile.js'; -import ERROR_CODES from '../services/errors/errorCodes'; -import logErrorOnSentry from '../services/errors/Sentry'; +import ERROR_CODES from '../services/errors/errorCodes.js'; +import logErrorOnSentry from '../services/errors/Sentry.js'; -import { DEFAULT_SAMPLES } from '../constants'; -export const DEFAULT_CONFIG_FILE = './.greenframe.yml'; +import { DEFAULT_SAMPLES } from '../constants.js'; + +import checkGreenFrameSecretToken from '../tasks/checkGreenFrameSecretToken.js'; +import createNewAnalysis from '../tasks/createNewAnalysis.js'; +import detectDockerVersion from '../tasks/detectDockerVersion.js'; +import detectKubernetesVersion from '../tasks/detectKubernetesVersion.js'; +import displayAnalysisResults from '../tasks/displayAnalysisResult.js'; +import executeDistantAnalysis from '../tasks/executeDistantAnalysis.js'; +import initializeKubeClient from '../tasks/initializeKubeClient.js'; +import retrieveGitInformations from '../tasks/retrieveGitInformations.js'; +import retrieveGreenFrameProject from '../tasks/retrieveGreenFrameProject.js'; +import runScenarioAndSaveResults from '../tasks/runScenariosAndSaveResult.js'; +import axios from 'axios'; +import { ScenarioResult } from '../services/computeScenarioResult.js'; +import { AnalysisResult } from '../services/computeAnalysisResult.js'; -import checkGreenFrameSecretToken from '../tasks/checkGreenFrameSecretToken'; -import createNewAnalysis from '../tasks/createNewAnalysis'; -import detectDockerVersion from '../tasks/detectDockerVersion'; -import detectKubernetesVersion from '../tasks/detectKubernetesVersion'; -import displayAnalysisResults from '../tasks/displayAnalysisResult'; -import executeDistantAnalysis from '../tasks/executeDistantAnalysis'; -import initializeKubeClient from '../tasks/initializeKubeClient'; -import retrieveGitInformations from '../tasks/retrieveGitInformations'; -import retrieveGreenFrameProject from '../tasks/retrieveGreenFrameProject'; -import runScenarioAndSaveResults from '../tasks/runScenariosAndSaveResult'; +export const DEFAULT_CONFIG_FILE = './.greenframe.yml'; let analysisId: string | null = null; @@ -42,17 +46,17 @@ process.on('SIGINT' || 'SIGKILL' || 'SIGTERM' || 'SIGQUIT', async function () { }); class AnalyzeCommand extends Command { - static args = [ - { + static args = { + baseURL: Args.string({ name: 'baseURL', description: 'Your baseURL website', - }, - { + }), + scenario: Args.string({ name: 'scenario', // name of arg to show in help and reference with args[name] description: 'Path to your GreenFrame scenario', // help description required: false, - }, - ]; + }), + }; static defaultFlags = { configFile: DEFAULT_CONFIG_FILE, @@ -160,7 +164,7 @@ class AnalyzeCommand extends Command { [ { title: 'Check configuration file', - task: (ctx) => { + task: (ctx: ListrContext) => { ctx.args = args; ctx.flags = flags; ctx.configFilePath = configFilePath; @@ -184,7 +188,7 @@ class AnalyzeCommand extends Command { { title: 'Creating new analysis', enabled: () => !isFree, - task: async (ctx) => { + task: async (ctx: ListrContext) => { await createNewAnalysis(ctx); analysisId = ctx.analysisId; }, @@ -197,7 +201,10 @@ class AnalyzeCommand extends Command { { title: `Analysis is in progress locally`, enabled: () => !isDistant, - task: async (ctx, task) => { + task: async ( + ctx: ListrContext, + task: ListrTaskWrapper + ) => { const tasksDefinition = [ { title: 'Detect docker version', @@ -234,12 +241,25 @@ class AnalyzeCommand extends Command { registerSignalListeners: false, } ); - const { result } = await tasks.run(); + const { result } = (await tasks.run()) as { + result: { + analysis: { id: string }; + scenarios: ScenarioResult[]; + computed: AnalysisResult; + }; + }; displayAnalysisResults(result, isFree); } catch (error: any) { console.error('\n❌ Failed!'); - console.error(error.name); - console.error(error.response?.data || error.message); + if (error instanceof Error) { + console.error(error.name); + if (axios.isAxiosError(error)) { + console.error(error.response?.data || error.message); + } else { + console.error(error.message); + } + } + console.error('\nContact us for support: contact@greenframe.io'); if (!error.errorCode) { logErrorOnSentry(error); @@ -263,4 +283,4 @@ class AnalyzeCommand extends Command { AnalyzeCommand.description = `Create an analysis on GreenFrame server.`; -module.exports = AnalyzeCommand; +export default AnalyzeCommand; diff --git a/src/commands/kube-config.ts b/src/commands/kube-config.ts index 24f9ad0..121a8b6 100644 --- a/src/commands/kube-config.ts +++ b/src/commands/kube-config.ts @@ -1,13 +1,13 @@ import { Command, Flags } from '@oclif/core'; import { Listr } from 'listr2'; -import { parseConfigFile, resolveParams } from '../services/parseConfigFile'; -import { addKubeGreenframeDaemonset } from '../tasks/addKubeGreenframeDaemonset'; -import { addKubeGreenframeNamespace } from '../tasks/addKubeGreenframeNamespace'; -import { deleteKubeGreenframeNamespace } from '../tasks/deleteKubeGreenframeNamespace'; -import initializeKubeClient from '../tasks/initializeKubeClient'; +import { parseConfigFile, resolveParams } from '../services/parseConfigFile.js'; +import { addKubeGreenframeDaemonset } from '../tasks/addKubeGreenframeDaemonset.js'; +import { addKubeGreenframeNamespace } from '../tasks/addKubeGreenframeNamespace.js'; +import { deleteKubeGreenframeNamespace } from '../tasks/deleteKubeGreenframeNamespace.js'; +import initializeKubeClient from '../tasks/initializeKubeClient.js'; class KubeConfigCommand extends Command { - static args = []; + static args = {}; static flags = { configFile: Flags.string({ @@ -93,4 +93,4 @@ KubeConfigCommand.description = `Configure kubernetes cluster to collect greenfr greenframe kube-config `; -module.exports = KubeConfigCommand; +export default KubeConfigCommand; diff --git a/src/commands/open.js b/src/commands/open.ts similarity index 81% rename from src/commands/open.js rename to src/commands/open.ts index 868bd74..aa1a988 100644 --- a/src/commands/open.js +++ b/src/commands/open.ts @@ -1,23 +1,23 @@ -const { Command, Flags } = require('@oclif/core'); -const path = require('node:path'); +import { Args, Command, Flags } from '@oclif/core'; +import path from 'node:path'; -const { parseConfigFile, resolveParams } = require('../services/parseConfigFile'); +import { parseConfigFile, resolveParams } from '../services/parseConfigFile.js'; -const executeScenario = require('../runner/scenarioWrapper.js'); +import executeScenario from '../runner/scenarioWrapper.js'; -const { detectExecutablePath } = require('../services/detectExecutablePath'); +import { detectExecutablePath } from '../services/detectExecutablePath.js'; class OpenCommand extends Command { - static args = [ - { + static args = { + baseURl: Args.string({ name: 'baseURL', // name of arg to show in help and reference with args[name] description: 'Your baseURL website', // help description - }, - { - name: 'scenario', // name of arg to show in help and reference with args[name] + }), + scenarios: Args.string({ + name: 'scenarios', // name of arg to show in help and reference with args[name] description: 'Path to your GreenFrame scenario', // help description required: false, - }, - ]; + }), + }; static defaultFlags = { configFile: './.greenframe.yml', @@ -64,7 +64,9 @@ class OpenCommand extends Command { for (let index = 0; index < args.scenarios.length; index++) { const scenario = args.scenarios[index]; const scenarioPath = path.resolve(scenario.path); - const scenarioFile = require(scenarioPath); + const scenarioFile = await import(scenarioPath).then( + (module) => module.default + ); try { const { timelines } = await executeScenario(scenarioFile, { debug: true, @@ -82,7 +84,7 @@ class OpenCommand extends Command { new Date(timelines.start).getTime() } ms` ); - } catch (error) { + } catch (error: any) { console.error(`❌ Error : ${scenario.name}`); console.error(error.message); process.exit(0); @@ -102,4 +104,4 @@ OpenCommand.description = `Open browser to develop your GreenFrame scenario greenframe analyze ./yourScenario.js https://greenframe.io `; -module.exports = OpenCommand; +export default OpenCommand; diff --git a/src/commands/update.js b/src/commands/update.ts similarity index 68% rename from src/commands/update.js rename to src/commands/update.ts index f3f49ff..f33d8a4 100644 --- a/src/commands/update.js +++ b/src/commands/update.ts @@ -1,16 +1,17 @@ -const axios = require('axios'); -const util = require('node:util'); -const exec = util.promisify(require('node:child_process').exec); +import { Args, Command } from '@oclif/core'; +import axios from 'axios'; +import { exec as execSync } from 'node:child_process'; +import util from 'node:util'; +const exec = util.promisify(execSync); -const { Command } = require('@oclif/core'); class UpdateCommand extends Command { - static args = [ - { + static args = { + channel: Args.string({ name: 'channel', description: 'Release channel', default: 'stable', - }, - ]; + }), + }; async run() { try { @@ -20,11 +21,13 @@ class UpdateCommand extends Command { `channels/${args.channel}/${bin}-${platform}-${arch}-buildmanifest` ); - const { data } = await axios.get(manifestUrl).catch(() => { - throw new Error( - 'Channel release was not found try with: greenframe update' - ); - }); + const { data } = await axios + .get<{ version: string; gz: string }>(manifestUrl) + .catch(() => { + throw new Error( + 'Channel release was not found try with: greenframe update' + ); + }); if (data.version === version) { console.log(`${bin}-${version} ${platform}-${arch}`); @@ -42,7 +45,7 @@ class UpdateCommand extends Command { rm -f $HOME/.local/bin/greenframe && ln -s $HOME/.local/lib/greenframe/bin/greenframe $HOME/.local/bin/greenframe `, - { shell: true } + { shell: 'sh' } ); if (stderr) { throw new Error(stderr); @@ -51,7 +54,10 @@ class UpdateCommand extends Command { console.log(`✅ Done !`); } catch (error) { console.error('\n❌ Update failed!'); - console.error(error.message); + if (error instanceof Error) { + console.error(error.message); + } + process.exit(1); } } @@ -62,4 +68,4 @@ UpdateCommand.description = `Update GreenFrame to the latest version greenframe update `; -module.exports = UpdateCommand; +export default UpdateCommand; diff --git a/src/examples/README.md b/src/examples/README.md new file mode 100644 index 0000000..42c34b0 --- /dev/null +++ b/src/examples/README.md @@ -0,0 +1 @@ +# examples diff --git a/src/examples/envvar.config.envfile.js b/src/examples/envvar.config.envfile.cjs similarity index 100% rename from src/examples/envvar.config.envfile.js rename to src/examples/envvar.config.envfile.cjs diff --git a/src/examples/envvar.config.isolated.js b/src/examples/envvar.config.isolated.cjs similarity index 100% rename from src/examples/envvar.config.isolated.js rename to src/examples/envvar.config.isolated.cjs diff --git a/src/examples/envvar.inline.envfile.js b/src/examples/envvar.inline.envfile.cjs similarity index 100% rename from src/examples/envvar.inline.envfile.js rename to src/examples/envvar.inline.envfile.cjs diff --git a/src/examples/exampleOfScenario.js b/src/examples/exampleOfScenario.cjs similarity index 100% rename from src/examples/exampleOfScenario.js rename to src/examples/exampleOfScenario.cjs diff --git a/src/examples/greenframe.js b/src/examples/greenframe.cjs similarity index 100% rename from src/examples/greenframe.js rename to src/examples/greenframe.cjs diff --git a/src/examples/greenframe2.js b/src/examples/greenframe2.cjs similarity index 100% rename from src/examples/greenframe2.js rename to src/examples/greenframe2.cjs diff --git a/src/examples/greenframeFail.js b/src/examples/greenframeFail.cjs similarity index 100% rename from src/examples/greenframeFail.js rename to src/examples/greenframeFail.cjs diff --git a/src/examples/laneuvelotte.js b/src/examples/laneuvelotte.cjs similarity index 100% rename from src/examples/laneuvelotte.js rename to src/examples/laneuvelotte.cjs diff --git a/src/examples/lavolpiliere.js b/src/examples/lavolpiliere.cjs similarity index 100% rename from src/examples/lavolpiliere.js rename to src/examples/lavolpiliere.cjs diff --git a/src/examples/marmelab.en.js b/src/examples/marmelab.en.cjs similarity index 100% rename from src/examples/marmelab.en.js rename to src/examples/marmelab.en.cjs diff --git a/src/examples/marmelab.fr.js b/src/examples/marmelab.fr.cjs similarity index 100% rename from src/examples/marmelab.fr.js rename to src/examples/marmelab.fr.cjs diff --git a/src/examples/marmelab.mjs b/src/examples/marmelab.mjs new file mode 100644 index 0000000..6b8b575 --- /dev/null +++ b/src/examples/marmelab.mjs @@ -0,0 +1,6 @@ +export default async (page) => { + await page.goto('', { + waitUntil: 'networkidle', + }); + await page.scrollToElement("text=LET'S WORK TOGETHER ON YOUR NEXT PROJECT!"); +}; diff --git a/src/examples/moviedb.js b/src/examples/moviedb.cjs similarity index 100% rename from src/examples/moviedb.js rename to src/examples/moviedb.cjs diff --git a/src/examples/nextWebsite.js b/src/examples/nextWebsite.cjs similarity index 100% rename from src/examples/nextWebsite.js rename to src/examples/nextWebsite.cjs diff --git a/src/examples/playstation.js b/src/examples/playstation.cjs similarity index 100% rename from src/examples/playstation.js rename to src/examples/playstation.cjs diff --git a/src/examples/ra-demo.js b/src/examples/ra-demo.cjs similarity index 100% rename from src/examples/ra-demo.js rename to src/examples/ra-demo.cjs diff --git a/src/examples/visit.js b/src/examples/visit.cjs similarity index 100% rename from src/examples/visit.js rename to src/examples/visit.cjs diff --git a/src/index.ts b/src/index.ts index 3e4b348..7dc3faa 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,4 @@ export { run } from '@oclif/core'; -export * from './model/index'; -export * from './types'; +export * from './model/index.js'; +export * from './types.js'; diff --git a/src/model/index.ts b/src/model/index.ts index 9429e9c..0931854 100644 --- a/src/model/index.ts +++ b/src/model/index.ts @@ -1,12 +1,12 @@ -export * from './stores/statStore'; -export * from './stores/timeframeStore'; -export * from './stat-tools/getWh'; -export * from './stat-tools/docker/computeStats'; -export * from './stat-tools/docker/readStats'; -export * from './stat-tools/intervals'; -export * from './stat-tools/providers/docker'; -export * from './stat-tools/providers/kubernetes'; -export * from './stat-tools/getConsumption'; -export * from './stat-tools/getAverageStats'; -export * from './stat-tools/getAverageMilestones'; -export * from './stat-tools/mergeScore'; +export * from './stores/statStore.js'; +export * from './stores/timeframeStore.js'; +export * from './stat-tools/getWh.js'; +export * from './stat-tools/docker/computeStats.js'; +export * from './stat-tools/docker/readStats.js'; +export * from './stat-tools/intervals.js'; +export * from './stat-tools/providers/docker.js'; +export * from './stat-tools/providers/kubernetes.js'; +export * from './stat-tools/getConsumption.js'; +export * from './stat-tools/getAverageStats.js'; +export * from './stat-tools/getAverageMilestones.js'; +export * from './stat-tools/mergeScore.js'; diff --git a/src/model/stat-tools/__tests__/getAverageMilestones.ts b/src/model/stat-tools/__tests__/getAverageMilestones.ts index c2a9b98..ddaccb3 100644 --- a/src/model/stat-tools/__tests__/getAverageMilestones.ts +++ b/src/model/stat-tools/__tests__/getAverageMilestones.ts @@ -1,4 +1,4 @@ -import { getAverageMilestones } from '../getAverageMilestones'; +import { getAverageMilestones } from '../getAverageMilestones.js'; describe('#getAverageMilestones', () => { it('Should return min milestones for each samples', () => { diff --git a/src/model/stat-tools/__tests__/getAverageStats.ts b/src/model/stat-tools/__tests__/getAverageStats.ts index 52ee2b0..0fa4641 100644 --- a/src/model/stat-tools/__tests__/getAverageStats.ts +++ b/src/model/stat-tools/__tests__/getAverageStats.ts @@ -1,5 +1,5 @@ -import { getAverageStats } from '../getAverageStats'; -import { addAvg, incrementalAverageStats } from '../getAverageStats'; +import { getAverageStats } from '../getAverageStats.js'; +import { addAvg, incrementalAverageStats } from '../getAverageStats.js'; const incrementalStat = (n: any, statValue: any, boolValue: any) => { return { diff --git a/src/model/stat-tools/__tests__/getConsumption.ts b/src/model/stat-tools/__tests__/getConsumption.ts index cdcac85..264d637 100644 --- a/src/model/stat-tools/__tests__/getConsumption.ts +++ b/src/model/stat-tools/__tests__/getConsumption.ts @@ -1,4 +1,4 @@ -import { getStandardError } from '../getConsumption'; +import { getStandardError } from '../getConsumption.js'; describe('getStandardError', () => { it('Should return good standard error in percentage (~5)', () => { diff --git a/src/model/stat-tools/docker/__tests__/computeStats.test.ts b/src/model/stat-tools/docker/__tests__/computeStats.test.ts index 4f5d156..733d5b8 100644 --- a/src/model/stat-tools/docker/__tests__/computeStats.test.ts +++ b/src/model/stat-tools/docker/__tests__/computeStats.test.ts @@ -1,6 +1,6 @@ -import { CONTAINER_TYPES } from '../../../../constants'; -import { GenericStat } from '../../../../types'; -import { computeStats } from '../computeStats'; +import { CONTAINER_TYPES } from '../../../../constants.js'; +import { GenericStat } from '../../../../types.js'; +import { computeStats } from '../computeStats.js'; test('computeStats', () => { const stats: GenericStat[] = [ diff --git a/src/model/stat-tools/docker/computeStats.ts b/src/model/stat-tools/docker/computeStats.ts index e55cf03..62bef26 100644 --- a/src/model/stat-tools/docker/computeStats.ts +++ b/src/model/stat-tools/docker/computeStats.ts @@ -4,9 +4,9 @@ import type { TimeFrame, Meta, ComputedStatWithMeta, -} from '../../../types'; +} from '../../../types.js'; -import { getTimeframe, intersection } from '../intervals'; +import { getTimeframe, intersection } from '../intervals.js'; const computeStat = ( previousComputed: ComputedStat, diff --git a/src/model/stat-tools/docker/readStats.ts b/src/model/stat-tools/docker/readStats.ts index 2c157cf..ebf33ec 100644 --- a/src/model/stat-tools/docker/readStats.ts +++ b/src/model/stat-tools/docker/readStats.ts @@ -4,10 +4,10 @@ import type { Meta, IntervalJSON, ComputedStatWithMeta, -} from '../../../types'; +} from '../../../types.js'; -import { docker } from '../providers/docker'; -import { computeStats } from './computeStats'; +import { docker } from '../providers/docker.js'; +import { computeStats } from './computeStats.js'; export const readDockerStats = (filename: string, meta: Meta): ComputedStatWithMeta[] => { const rawdata = fs.readFileSync(filename, 'utf8'); diff --git a/src/model/stat-tools/getAverageMilestones.ts b/src/model/stat-tools/getAverageMilestones.ts index 5eb9063..9f494b0 100644 --- a/src/model/stat-tools/getAverageMilestones.ts +++ b/src/model/stat-tools/getAverageMilestones.ts @@ -1,4 +1,4 @@ -import { Milestone } from '../../types'; +import { Milestone } from '../../types.js'; export const getAverageMilestones = (milestonesPerSamples: Milestone[][]) => { const samples = milestonesPerSamples.length; diff --git a/src/model/stat-tools/getAverageStats.ts b/src/model/stat-tools/getAverageStats.ts index b5264be..8e7d7cd 100644 --- a/src/model/stat-tools/getAverageStats.ts +++ b/src/model/stat-tools/getAverageStats.ts @@ -1,4 +1,4 @@ -import { groupBy } from 'lodash'; +import groupBy from 'lodash/groupBy.js'; export const getAverageStats = (computedStats: any) => { // Groupe stats by sample diff --git a/src/model/stat-tools/getConsumption.ts b/src/model/stat-tools/getConsumption.ts index 9163a21..f47ea1e 100644 --- a/src/model/stat-tools/getConsumption.ts +++ b/src/model/stat-tools/getConsumption.ts @@ -1,13 +1,13 @@ import { std } from 'mathjs'; -import { computeStats } from './docker/computeStats'; +import { computeStats } from './docker/computeStats.js'; import { getMetricsPerContainerPerSamples, getMetricsPerContainer, addMetricsContainer, -} from './getWh'; -import { docker } from './providers/docker'; -import { kubernetes } from './providers/kubernetes'; -import { createStatStore } from '../stores/statStore'; +} from './getWh.js'; +import { docker } from './providers/docker.js'; +import { kubernetes } from './providers/kubernetes.js'; +import { createStatStore } from '../stores/statStore.js'; import type { CadvisorContainerStats, ComputedStatWithMeta, @@ -15,8 +15,8 @@ import type { MetricsContainer, TimeFrame, ValueOf, -} from '../../types'; -import type { CONTAINER_TYPES } from '../../constants'; +} from '../../types.js'; +import type { CONTAINER_TYPES } from '../../constants.js'; const getStandardError = (totalWhBySamples: number[], totalWhMean: number) => { // Calculate the standard deviation and divide it by the sqrt of number of samples. // Compute it in percentage of the totalScore @@ -221,5 +221,4 @@ const getStats = ( ); }; -module.exports = { getStandardError, getComputedStats, getScenarioConsumption, getStats }; export { getStandardError, getComputedStats, getScenarioConsumption, getStats }; diff --git a/src/model/stat-tools/getWh.ts b/src/model/stat-tools/getWh.ts index 32a59e6..170c306 100644 --- a/src/model/stat-tools/getWh.ts +++ b/src/model/stat-tools/getWh.ts @@ -6,9 +6,9 @@ import { getContainerType, getSamples, StatStore, -} from '../stores/statStore'; +} from '../stores/statStore.js'; -import { getTitles, TimeFrameStore } from '../stores/timeframeStore'; +import { getTitles, TimeFrameStore } from '../stores/timeframeStore.js'; import type { EnergyProfile, @@ -17,9 +17,9 @@ import type { ValueOf, WhPerTimeFrame, // WhSummary, -} from '../../types'; +} from '../../types.js'; -import { CONTAINER_TYPES } from '../../constants'; +import { CONTAINER_TYPES } from '../../constants.js'; const CARBON_INTENSITY = 442; // unit: g/kWh export const whToCO2 = (wh: number): number => (wh * CARBON_INTENSITY) / 1000; // unit: g diff --git a/src/model/stat-tools/intervals.ts b/src/model/stat-tools/intervals.ts index f06f914..7549386 100644 --- a/src/model/stat-tools/intervals.ts +++ b/src/model/stat-tools/intervals.ts @@ -1,4 +1,4 @@ -import type { TimeFrame } from '../../types'; +import type { TimeFrame } from '../../types.js'; // Intersection of two intervals [aStart,aEnd] and [bStart,bEnd] // Note that we use named-tuples here! diff --git a/src/model/stat-tools/mergeScore.ts b/src/model/stat-tools/mergeScore.ts index 7f53965..47040c7 100644 --- a/src/model/stat-tools/mergeScore.ts +++ b/src/model/stat-tools/mergeScore.ts @@ -1,4 +1,4 @@ -import { MetricsContainer } from '../../types'; +import { MetricsContainer } from '../../types.js'; export const mergeScores = ( score: MetricsContainer, diff --git a/src/model/stat-tools/providers/__tests__/docker.test.ts b/src/model/stat-tools/providers/__tests__/docker.test.ts index 752e97f..0ca45cb 100644 --- a/src/model/stat-tools/providers/__tests__/docker.test.ts +++ b/src/model/stat-tools/providers/__tests__/docker.test.ts @@ -1,5 +1,5 @@ -import type { DockerStatsJSON } from '../../../../types'; -import { docker, sumBlkioStats } from '../docker'; +import type { DockerStatsJSON } from '../../../../types.js'; +import { docker, sumBlkioStats } from '../docker.js'; test('computeGenericStats', () => { const stats: DockerStatsJSON[] = [ diff --git a/src/model/stat-tools/providers/__tests__/kubernetes.test.ts b/src/model/stat-tools/providers/__tests__/kubernetes.test.ts index 4c22b34..744dd6f 100644 --- a/src/model/stat-tools/providers/__tests__/kubernetes.test.ts +++ b/src/model/stat-tools/providers/__tests__/kubernetes.test.ts @@ -1,5 +1,5 @@ -import type { CadvisorContainerStats } from '../../../../types'; -import { kubernetes } from '../kubernetes'; +import type { CadvisorContainerStats } from '../../../../types.js'; +import { kubernetes } from '../kubernetes.js'; test('computeGenericStats', () => { const stats: CadvisorContainerStats[] = [ diff --git a/src/model/stat-tools/providers/docker.ts b/src/model/stat-tools/providers/docker.ts index a4451d8..9f71cd8 100644 --- a/src/model/stat-tools/providers/docker.ts +++ b/src/model/stat-tools/providers/docker.ts @@ -3,7 +3,7 @@ import type { DockerStatsJSON, GenericStat, Provider, -} from '../../../types'; +} from '../../../types.js'; const computeGenericStats = (stats: DockerStatsJSON[]): GenericStat[] => { const result: GenericStat[] = []; diff --git a/src/model/stat-tools/providers/kubernetes.ts b/src/model/stat-tools/providers/kubernetes.ts index c70a1a6..9e1677c 100644 --- a/src/model/stat-tools/providers/kubernetes.ts +++ b/src/model/stat-tools/providers/kubernetes.ts @@ -3,7 +3,7 @@ import type { GenericStat, IoServiceByte, Provider, -} from '../../../types'; +} from '../../../types.js'; const computeGenericStats = (stats: CadvisorContainerStats[]): GenericStat[] => { const result: GenericStat[] = []; diff --git a/src/model/stores/__tests__/statStore.test.ts b/src/model/stores/__tests__/statStore.test.ts index 7719008..3a953fe 100644 --- a/src/model/stores/__tests__/statStore.test.ts +++ b/src/model/stores/__tests__/statStore.test.ts @@ -1,7 +1,7 @@ -import { createStatStore, getComputedStat, getContainers } from '../statStore'; -import type { StatStore } from '../statStore'; -import { ComputedStatWithMeta } from '../../../types'; -import { CONTAINER_TYPES } from '../../../constants'; +import { createStatStore, getComputedStat, getContainers } from '../statStore.js'; +import type { StatStore } from '../statStore.js'; +import { ComputedStatWithMeta } from '../../../types.js'; +import { CONTAINER_TYPES } from '../../../constants.js'; const generator: Array<[number, number, string, number]> = [ [0, 0, '00Z', 1e3], diff --git a/src/model/stores/__tests__/timeframeStore.test.ts b/src/model/stores/__tests__/timeframeStore.test.ts index cb3e9e0..e0d9f27 100644 --- a/src/model/stores/__tests__/timeframeStore.test.ts +++ b/src/model/stores/__tests__/timeframeStore.test.ts @@ -1,6 +1,6 @@ -import type { TimeFrameWithMeta } from '../../../types'; -import type { TimeFrameStore } from '../timeframeStore'; -import { createTimeFrameStore, getTitles } from '../timeframeStore'; +import type { TimeFrameWithMeta } from '../../../types.js'; +import type { TimeFrameStore } from '../timeframeStore.js'; +import { createTimeFrameStore, getTitles } from '../timeframeStore.js'; const generator = [ [0, 0, '00:00:00Z', '00:00:01Z', 'title 0 0 - milestone 1'], diff --git a/src/model/stores/statStore.ts b/src/model/stores/statStore.ts index 2f0d3a4..b9749a9 100644 --- a/src/model/stores/statStore.ts +++ b/src/model/stores/statStore.ts @@ -1,5 +1,5 @@ -import { CONTAINER_TYPES } from '../../constants'; -import type { Meta, ComputedStatWithMeta, ValueOf } from '../../types'; +import { CONTAINER_TYPES } from '../../constants.js'; +import type { Meta, ComputedStatWithMeta, ValueOf } from '../../types.js'; // map: containerName -> ComputedStatWithMeta[] export type StatStore = Map>; diff --git a/src/model/stores/timeframeStore.ts b/src/model/stores/timeframeStore.ts index 9d79ea1..d98f530 100644 --- a/src/model/stores/timeframeStore.ts +++ b/src/model/stores/timeframeStore.ts @@ -1,4 +1,4 @@ -import type { TimeFrameWithMeta } from '../../types'; +import type { TimeFrameWithMeta } from '../../types.js'; // map: containerName -> TimeFrameWithMeta[] export type TimeFrameStore = Map; diff --git a/src/runner/index.js b/src/runner/index.ts similarity index 80% rename from src/runner/index.js rename to src/runner/index.ts index 3e67304..0cfc831 100644 --- a/src/runner/index.js +++ b/src/runner/index.ts @@ -1,8 +1,8 @@ -const minimist = require('minimist'); +import minimist from 'minimist'; -const executeScenario = require('./scenarioWrapper'); +import executeScenario from './scenarioWrapper.js'; -const getScenarioPath = (scenario) => { +const getScenarioPath = (scenario: string) => { const scenarioPath = decodeURIComponent(scenario); if (scenarioPath.startsWith('./')) { @@ -15,7 +15,9 @@ const getScenarioPath = (scenario) => { (async () => { const args = minimist(process.argv.slice(2)); const scenarioPath = getScenarioPath(args.scenario); - const scenarioFileContent = require(scenarioPath); + const scenarioFileContent = await import(scenarioPath).then( + (module) => module.default + ); const { timelines, milestones } = await executeScenario(scenarioFileContent, { baseUrl: decodeURIComponent(args.url), hostIP: process.env.HOSTIP, diff --git a/src/runner/scenarioWrapper.js b/src/runner/scenarioWrapper.ts similarity index 71% rename from src/runner/scenarioWrapper.js rename to src/runner/scenarioWrapper.ts index 7fedb29..05429e4 100644 --- a/src/runner/scenarioWrapper.js +++ b/src/runner/scenarioWrapper.ts @@ -1,28 +1,42 @@ -import getScopedPage from './scopedPage'; - -const { chromium } = require('playwright'); -const { PlaywrightBlocker } = require('@cliqz/adblocker-playwright'); -const fetch = require('cross-fetch'); // required 'fetch' +import { PlaywrightBlocker } from '@cliqz/adblocker-playwright'; +import fetch from 'cross-fetch'; // required 'fetch' +import { Milestone, chromium } from 'playwright'; +import getScopedPage from './scopedPage.js'; const SCENARIO_TIMEOUT = 2 * 60 * 1000; // Global timeout for executing a scenario -const relativizeMilestoneSamples = (milestones, startTime) => +const relativizeMilestoneSamples = (milestones: Milestone[], startTime: number) => milestones.map(({ timestamp, ...milestone }) => ({ ...milestone, time: timestamp - startTime, })); -const executeScenario = async (scenario, options = {}) => { - let args = ['--disable-web-security']; +const executeScenario = async ( + scenario: CallableFunction, + options: { + hostIP?: string; + extraHosts?: string[]; + debug?: boolean; + executablePath?: string; + ignoreHTTPSErrors?: boolean; + locale?: string; + timezoneId?: string; + useAdblock?: boolean; + baseUrl?: string; + name?: string; + } = {} +) => { + const args: string[] = ['--disable-web-security']; if (options.hostIP) { args.push(`--host-rules=MAP localhost ${options.hostIP}`); - for (const extraHost of options.extraHosts) { + for (const extraHost of options.extraHosts ?? []) { args.push(`--host-rules=MAP ${extraHost} ${options.hostIP}`); } } const browser = await chromium.launch({ + // @ts-expect-error TODO look into this defaultViewport: { width: 900, height: 600, @@ -91,4 +105,4 @@ process.on('unhandledRejection', (err) => { throw err; }); -module.exports = executeScenario; +export default executeScenario; diff --git a/src/runner/scopedPage.ts b/src/runner/scopedPage.ts index 9281c0c..33f3524 100644 --- a/src/runner/scopedPage.ts +++ b/src/runner/scopedPage.ts @@ -1,8 +1,8 @@ import { Page } from 'playwright'; import { URL } from 'node:url'; -import ConfigurationError from '../services/errors/ConfigurationError'; +import ConfigurationError from '../services/errors/ConfigurationError.js'; -const getScopedPage = (page: Page, baseUrl: string) => { +const getScopedPage = (page: Page, baseUrl?: string) => { if (!baseUrl) { throw new ConfigurationError('You must provide a base url!'); } diff --git a/src/services/__tests__/parseConfigFile.js b/src/services/__tests__/parseConfigFile.ts similarity index 98% rename from src/services/__tests__/parseConfigFile.js rename to src/services/__tests__/parseConfigFile.ts index 3426222..aea5782 100644 --- a/src/services/__tests__/parseConfigFile.js +++ b/src/services/__tests__/parseConfigFile.ts @@ -1,4 +1,4 @@ -const { resolveParams } = require('../parseConfigFile'); +import { resolveParams } from '../parseConfigFile.js'; describe('#resolveParams', () => { test('Should return flags default values', () => { diff --git a/src/services/__tests__/readFileToString.js b/src/services/__tests__/readFileToString.ts similarity index 77% rename from src/services/__tests__/readFileToString.js rename to src/services/__tests__/readFileToString.ts index 454bd0e..847318f 100644 --- a/src/services/__tests__/readFileToString.js +++ b/src/services/__tests__/readFileToString.ts @@ -4,13 +4,13 @@ jest.mock('node:fs', () => { }; }); -const { readFile } = require('node:fs'); +import { readFile } from 'node:fs'; jest.mock('node:util', () => ({ - promisify: (cb) => cb, + promisify: (cb: CallableFunction) => cb, })); -const path = require('node:path'); +import path from 'node:path'; const cwd = process.cwd(); -const { readFileToString } = require('../readFileToString'); +import { readFileToString } from '../readFileToString.js'; describe('#readFileToString', () => { test('Should call readFile with correctly resolved scenario path', () => { diff --git a/src/services/api/analyses.ts b/src/services/api/analyses.ts index f0ffbe1..ea6cd67 100644 --- a/src/services/api/analyses.ts +++ b/src/services/api/analyses.ts @@ -1,8 +1,8 @@ import initDebug from 'debug'; -import { STATUS } from '../../status'; -import { Analysis } from '../../types'; -import { AnalysisResult } from '../computeAnalysisResult'; -import instance from './instance'; +import { STATUS } from '../../status.js'; +import { Analysis } from '../../types.js'; +import { AnalysisResult } from '../computeAnalysisResult.js'; +import instance from './instance.js'; const debug = initDebug('greenframe:services:api:analyses'); @@ -21,7 +21,7 @@ export const createAnalysis = async ({ gitInfos; debug('createAnalysis'); - return instance.post('/analyses', { + return instance.post('/analyses', { scenarios, url: baseURL, samples, diff --git a/src/services/api/instance.ts b/src/services/api/instance.ts index 7e79ddb..cb7ce95 100644 --- a/src/services/api/instance.ts +++ b/src/services/api/instance.ts @@ -7,5 +7,4 @@ const instance = axios.create({ headers: { 'Content-Type': 'application/json', authorization: `Bearer ${apiToken}` }, }); -module.exports = instance; export default instance; diff --git a/src/services/api/projects.js b/src/services/api/projects.js deleted file mode 100644 index 0ce5f15..0000000 --- a/src/services/api/projects.js +++ /dev/null @@ -1,7 +0,0 @@ -const instance = require('./instance'); - -const getProject = (name) => { - return instance.get(`/projects/${name}`); -}; - -module.exports = { getProject }; diff --git a/src/services/api/projects.ts b/src/services/api/projects.ts new file mode 100644 index 0000000..8fb3b6b --- /dev/null +++ b/src/services/api/projects.ts @@ -0,0 +1,5 @@ +import instance from './instance.js'; + +export const getProject = (name: string) => { + return instance.get(`/projects/${name}`); +}; diff --git a/src/services/api/scenarios.ts b/src/services/api/scenarios.ts index dd169b2..22730e0 100644 --- a/src/services/api/scenarios.ts +++ b/src/services/api/scenarios.ts @@ -1,5 +1,5 @@ import initDebug from 'debug'; -import instance from './instance'; +import instance from './instance.js'; const debug = initDebug('greenframe:services:api:scenarios'); diff --git a/src/services/computeAnalysisResult.ts b/src/services/computeAnalysisResult.ts index c29def4..f6c1c6b 100644 --- a/src/services/computeAnalysisResult.ts +++ b/src/services/computeAnalysisResult.ts @@ -1,7 +1,7 @@ -import { ERROR_CODES } from '../constants'; -import { mergeScores } from '../index'; -import { MetricsContainer, ValueOf } from '../types'; -import { ScenarioResult } from './computeScenarioResult'; +import { ERROR_CODES } from '../constants.js'; +import { mergeScores } from '../index.js'; +import { MetricsContainer, ValueOf } from '../types.js'; +import { ScenarioResult } from './computeScenarioResult.js'; export type AnalysisResult = { score?: MetricsContainer; diff --git a/src/services/computeScenarioResult.ts b/src/services/computeScenarioResult.ts index ca768e0..2655f71 100644 --- a/src/services/computeScenarioResult.ts +++ b/src/services/computeScenarioResult.ts @@ -1,11 +1,11 @@ -import { ERROR_CODES, SCENARIO_STATUS } from '../constants'; +import { ERROR_CODES, SCENARIO_STATUS } from '../constants.js'; import { getAverageMilestones, getAverageStats, getScenarioConsumption, getStats, -} from '../index'; -import { MetricsContainer, Milestone, ValueOf } from '../types'; +} from '../index.js'; +import { MetricsContainer, Milestone, ValueOf } from '../types.js'; export type ScenarioResult = { name: string; diff --git a/src/services/container/__tests__/execScenarioContainer.js b/src/services/container/__tests__/execScenarioContainer.ts similarity index 90% rename from src/services/container/__tests__/execScenarioContainer.js rename to src/services/container/__tests__/execScenarioContainer.ts index c58dcc9..2217de6 100644 --- a/src/services/container/__tests__/execScenarioContainer.js +++ b/src/services/container/__tests__/execScenarioContainer.ts @@ -3,17 +3,17 @@ jest.mock('node:child_process', () => ({ })); jest.mock('node:util', () => ({ - promisify: (cb) => cb, + promisify: (cb: CallableFunction) => cb, })); -const { exec } = require('node:child_process'); -const { +import { exec } from 'node:child_process'; +import { buildEnvVarList, createContainer, startContainer, execScenarioContainer, stopContainer, -} = require('../execScenarioContainer'); +} from '../execScenarioContainer.js'; describe('#buildEnvVarList', () => { const env = process.env; @@ -29,7 +29,7 @@ describe('#buildEnvVarList', () => { }); it('Should return empty string with empty params', async () => { - const envVars = []; + const envVars: string[] = []; const envFile = ''; const envString = buildEnvVarList(envVars, envFile); expect(envString).toBe(''); @@ -52,7 +52,7 @@ describe('#buildEnvVarList', () => { }); it('Should return correct string with only envFile', async () => { - const envVars = []; + const envVars: string[] = []; const envFile = './.env.local'; const envString = buildEnvVarList(envVars, envFile); expect(envString).toBe(' --env-file ./.env.local'); @@ -73,48 +73,58 @@ describe('#buildEnvVarList', () => { describe('#createContainer', () => { it('Should call exec with good command', async () => { + // @ts-expect-error jest mock exec.mockReturnValueOnce({ stdout: 'HOST_IP' }); await createContainer(); expect(exec).toHaveBeenCalledTimes(3); + // @ts-expect-error jest mock expect(exec.mock.calls[1][0]).toContain( 'docker create --tty --name greenframe-runner --rm -e HOSTIP=HOST_IP --add-host localhost:HOST_IP' ); }); it('Should call exec with extraHosts', async () => { + // @ts-expect-error jest mock exec.mockReturnValueOnce({ stdout: 'HOST_IP' }); await createContainer(['example.com', 'another-example.com']); expect(exec).toHaveBeenCalledTimes(3); + // @ts-expect-error jest mock expect(exec.mock.calls[1][0]).toContain( 'docker create --tty --name greenframe-runner --rm -e HOSTIP=HOST_IP -e EXTRA_HOSTS=example.com,another-example.com --add-host localhost:HOST_IP --add-host example.com:HOST_IP --add-host another-example.com:HOST_IP' ); }); it('Should call exec with env vars', async () => { + // @ts-expect-error jest mock exec.mockReturnValueOnce({ stdout: 'HOST_IP' }); await createContainer([], ['VAR_ONE=one', 'VAR_TWO=two']); expect(exec).toHaveBeenCalledTimes(3); + // @ts-expect-error jest mock expect(exec.mock.calls[1][0]).toContain( 'docker create --tty --name greenframe-runner --rm -e HOSTIP=HOST_IP -e VAR_ONE=one -e VAR_TWO=two ' ); }); it('Should call exec with env file', async () => { + // @ts-expect-error jest mock exec.mockReturnValueOnce({ stdout: 'HOST_IP' }); await createContainer([], [], './.env.local'); expect(exec).toHaveBeenCalledTimes(3); + // @ts-expect-error jest mock expect(exec.mock.calls[1][0]).toContain( 'docker create --tty --name greenframe-runner --rm -e HOSTIP=HOST_IP --env-file ./.env.local ' ); }); afterEach(() => { + // @ts-expect-error jest mock exec.mockClear(); }); }); describe('#startContainer', () => { it('Should call exec with good command', async () => { + // @ts-expect-error jest mock exec.mockReturnValue({}); await startContainer(); @@ -123,17 +133,20 @@ describe('#startContainer', () => { }); it('Should throw an error', async () => { + // @ts-expect-error jest mock exec.mockReturnValue({ stderr: 'TEST ERROR' }); await expect(startContainer()).rejects.toThrow('TEST ERROR'); }); afterEach(() => { + // @ts-expect-error jest mock exec.mockClear(); }); }); describe('#execScenarioContainer', () => { it('Should call exec with good command and return timelines', async () => { + // @ts-expect-error jest mock exec.mockReturnValue({ stdout: `=====TIMELINES===== {"start": "START_DATE", "end": "END_DATE", "elapsed": "ELAPSED_TIME"} @@ -161,6 +174,7 @@ describe('#execScenarioContainer', () => { }); it('Should call exec with good command and also return milestones if provided', async () => { + // @ts-expect-error jest mock exec.mockReturnValue({ stdout: `=====TIMELINES===== {"start": "START_DATE", "end": "END_DATE", "elapsed": "ELAPSED_TIME"} @@ -191,6 +205,7 @@ describe('#execScenarioContainer', () => { }); it('Should call exec with useAdblocker', async () => { + // @ts-expect-error jest mock exec.mockReturnValue({ stdout: `=====TIMELINES===== {"start": "START_DATE", "end": "END_DATE", "elapsed": "ELAPSED_TIME"} @@ -222,6 +237,7 @@ describe('#execScenarioContainer', () => { }); it('Should throw an error because exec throw an error', async () => { + // @ts-expect-error jest mock exec.mockReturnValue({ stdout: `=====TIMELINES===== {"start": "START_DATE", "end": "END_DATE", "elapsed": "ELAPSED_TIME"} @@ -236,6 +252,7 @@ describe('#execScenarioContainer', () => { }); it('Should throw an error because JSON.parse thrown an error', async () => { + // @ts-expect-error jest mock exec.mockReturnValue({ stdout: `=====TIMELINES===== INVALID JSON @@ -249,12 +266,14 @@ describe('#execScenarioContainer', () => { }); afterEach(() => { + // @ts-expect-error jest mock exec.mockClear(); }); }); describe('#stopContainer', () => { it('Should call exec with good command', async () => { + // @ts-expect-error jest mock exec.mockReturnValue({}); await stopContainer(); @@ -265,6 +284,7 @@ describe('#stopContainer', () => { }); afterEach(() => { + // @ts-expect-error jest mock exec.mockClear(); }); }); diff --git a/src/services/container/__tests__/getContainerStats.ts b/src/services/container/__tests__/getContainerStats.ts index 46a3c15..a7d85a7 100644 --- a/src/services/container/__tests__/getContainerStats.ts +++ b/src/services/container/__tests__/getContainerStats.ts @@ -17,7 +17,7 @@ jest.mock('node:http', () => ({ })); import http from 'node:http'; -import getContainerStatsIfRunning from '../getContainerStats'; +import getContainerStatsIfRunning from '../getContainerStats.js'; describe('getContainerStats', () => { beforeEach(() => { diff --git a/src/services/container/execScenarioContainer.js b/src/services/container/execScenarioContainer.ts similarity index 78% rename from src/services/container/execScenarioContainer.js rename to src/services/container/execScenarioContainer.ts index 60066d6..e057a0d 100644 --- a/src/services/container/execScenarioContainer.js +++ b/src/services/container/execScenarioContainer.ts @@ -1,14 +1,23 @@ -const util = require('node:util'); -const path = require('node:path'); -const exec = util.promisify(require('node:child_process').exec); -const { CONTAINER_DEVICE_NAME } = require('../../constants'); -const ScenarioError = require('../errors/ScenarioError'); -const initDebug = require('debug'); +import initDebug from 'debug'; +import { exec as execSync } from 'node:child_process'; +import path from 'node:path'; +import util from 'node:util'; +import { CONTAINER_DEVICE_NAME } from '../../constants.js'; +import ScenarioError from '../errors/ScenarioError.js'; +const exec = util.promisify(execSync); +import { dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); const PROJECT_ROOT = path.resolve(__dirname, '../../../'); const debug = initDebug('greenframe:services:container:execScenarioContainer'); -const createContainer = async (extraHosts = [], envVars = [], envFile = '') => { +export const createContainer = async ( + extraHosts: string[] = [], + envVars: string[] = [], + envFile = '' +) => { const { stdout } = await exec(`${PROJECT_ROOT}/dist/bash/getHostIP.sh`); const HOSTIP = stdout; const extraHostsFlags = extraHosts @@ -40,7 +49,7 @@ const createContainer = async (extraHosts = [], envVars = [], envFile = '') => { debug(`Files copied to container ${CONTAINER_DEVICE_NAME}`); }; -const startContainer = async () => { +export const startContainer = async () => { const { stderr } = await exec(`docker start ${CONTAINER_DEVICE_NAME}`); if (stderr) { throw new Error(stderr); @@ -49,10 +58,20 @@ const startContainer = async () => { return 'OK'; }; -const execScenarioContainer = async ( - scenario, - url, - { useAdblock, ignoreHTTPSErrors, locale, timezoneId } = {} +export const execScenarioContainer = async ( + scenario: string, + url: string, + { + useAdblock, + ignoreHTTPSErrors, + locale, + timezoneId, + }: { + useAdblock?: boolean; + ignoreHTTPSErrors?: boolean; + locale?: string; + timezoneId?: string; + } = {} ) => { try { let command = `docker exec ${CONTAINER_DEVICE_NAME} node /greenframe/dist/runner/index.js --scenario="${encodeURIComponent( @@ -85,12 +104,12 @@ const execScenarioContainer = async ( const milestones = JSON.parse(stdout.split('=====MILESTONES=====')[1] || '[]'); return { timelines, milestones }; - } catch (error) { + } catch (error: any) { throw new ScenarioError(error.stderr || error.message); } }; -const stopContainer = async () => { +export const stopContainer = async () => { try { // The container might take a while to stop. // We rename it to avoid conflicts when recreating it (if it is still removing while we try to create it again, it will fail). @@ -106,7 +125,7 @@ const stopContainer = async () => { return 'OK'; }; -const buildEnvVarList = (envVars = [], envFile = '') => { +export const buildEnvVarList = (envVars: string[] = [], envFile = '') => { const envVarString = envVars.length > 0 ? envVars.reduce((list, envVarName) => { @@ -123,11 +142,3 @@ const buildEnvVarList = (envVars = [], envFile = '') => { return `${envVarString}${envVarFileString ? envVarFileString : ''}`; }; - -module.exports = { - buildEnvVarList, - createContainer, - startContainer, - execScenarioContainer, - stopContainer, -}; diff --git a/src/services/container/getContainerStats.js b/src/services/container/getContainerStats.ts similarity index 64% rename from src/services/container/getContainerStats.js rename to src/services/container/getContainerStats.ts index 87a4cee..f2e8df4 100644 --- a/src/services/container/getContainerStats.js +++ b/src/services/container/getContainerStats.ts @@ -1,12 +1,28 @@ -const http = require('node:http'); -const ConfigurationError = require('../errors/ConfigurationError'); -const initDebug = require('debug'); +import http from 'node:http'; +import ConfigurationError from '../errors/ConfigurationError.js'; +import initDebug from 'debug'; const debug = initDebug('greenframe:services:contaiener:getContainerStats'); -const getIsContainerRunning = (containerName, dockerdOptions) => { - return new Promise((resolve, reject) => { - const options = { +export type DockerdOptions = { + dockerdHost?: string; + dockerdPort?: number; +}; + +type Options = { + path: string; + method: string; + host?: string; + port?: number; + socketPath?: string; +}; + +const getIsContainerRunning = ( + containerName: string, + dockerdOptions?: DockerdOptions +) => { + return new Promise((resolve, reject) => { + const options: Options = { path: `/containers/${containerName}/json`, method: 'GET', }; @@ -18,7 +34,7 @@ const getIsContainerRunning = (containerName, dockerdOptions) => { } try { - const callback = (res) => { + const callback = (res: http.IncomingMessage) => { if (res.statusCode !== 200) { reject( `${containerName} container may has encountered an issue. Status code:${res.statusCode}. Status message:${res.statusMessage}` @@ -41,8 +57,8 @@ const getIsContainerRunning = (containerName, dockerdOptions) => { }); }; -const getContainerStats = (containerName, dockerdOptions) => { - const options = { +const getContainerStats = (containerName: string, dockerdOptions?: DockerdOptions) => { + const options: Options = { path: `/containers/${containerName}/stats`, method: 'GET', }; @@ -53,9 +69,9 @@ const getContainerStats = (containerName, dockerdOptions) => { options.socketPath = '/var/run/docker.sock'; } - const stats = []; - const callback = (res) => { - res.on('data', (data) => { + const stats: string[] = []; + const callback = (res: http.IncomingMessage) => { + res.on('data', (data: ArrayBuffer) => { try { const stat = JSON.parse(Buffer.from(data).toString()); stats.push(stat); @@ -64,7 +80,7 @@ const getContainerStats = (containerName, dockerdOptions) => { } }); - res.on('error', (e) => { + res.on('error', (e: any) => { // This code is fired when we call clientRequest.destroy(); if (e.code !== 'ECONNRESET') { console.error(e); @@ -83,13 +99,24 @@ const getContainerStats = (containerName, dockerdOptions) => { return stopContainerStats; }; -const getContainerStatsIfRunning = async (containerName, dockerdOptions) => { +const getContainerStatsIfRunning = async ( + containerName: string, + dockerdOptions?: DockerdOptions +) => { try { await getIsContainerRunning(containerName, dockerdOptions); return getContainerStats(containerName, dockerdOptions); } catch (error) { - throw new ConfigurationError(error); + if (error instanceof Error) { + throw new ConfigurationError(error.message); + } + + if (typeof error === 'string') { + throw new ConfigurationError(error); + } + + throw new ConfigurationError('Unknown error'); } }; -module.exports = getContainerStatsIfRunning; +export default getContainerStatsIfRunning; diff --git a/src/services/container/getPodsStats.ts b/src/services/container/getPodsStats.ts index 48954c8..fafcbd8 100644 --- a/src/services/container/getPodsStats.ts +++ b/src/services/container/getPodsStats.ts @@ -1,9 +1,9 @@ import initDebug from 'debug'; -import { CONTAINER_TYPES } from '../../constants'; -import type { ValueOf } from '../../types'; -import { getContainerStats } from './kubernetes/getContainerStats'; -import { CadvisorContainerStats } from './kubernetes/stats'; -import { Nodes } from './kubernetes/structureNodes'; +import { CONTAINER_TYPES } from '../../constants.js'; +import type { ValueOf } from '../../types.js'; +import { getContainerStats } from './kubernetes/getContainerStats.js'; +import { CadvisorContainerStats } from './kubernetes/stats.js'; +import { Nodes } from './kubernetes/structureNodes.js'; const debug = initDebug('greenframe:services:container:getPodsStats'); export type PodStat = { podName: string; diff --git a/src/services/container/index.ts b/src/services/container/index.ts index 26490d3..cd1f172 100644 --- a/src/services/container/index.ts +++ b/src/services/container/index.ts @@ -4,15 +4,19 @@ import { execScenarioContainer, startContainer, stopContainer, -} from './execScenarioContainer'; -import getContainerStatsIfRunning from './getContainerStats'; - -import { CONTAINER_DEVICE_NAME, CONTAINER_TYPES, DEFAULT_SAMPLES } from '../../constants'; -import type { ValueOf } from '../../types'; -import { getPodsStats } from './getPodsStats'; -import { mergePodStatsWithNetworkStats } from './kubernetes/mergePodStatsWithNetworkStats'; -import { CadvisorContainerStats } from './kubernetes/stats'; -import { getNodes } from './kubernetes/structureNodes'; +} from './execScenarioContainer.js'; +import getContainerStatsIfRunning from './getContainerStats.js'; + +import { + CONTAINER_DEVICE_NAME, + CONTAINER_TYPES, + DEFAULT_SAMPLES, +} from '../../constants.js'; +import type { ValueOf } from '../../types.js'; +import { getPodsStats } from './getPodsStats.js'; +import { mergePodStatsWithNetworkStats } from './kubernetes/mergePodStatsWithNetworkStats.js'; +import { CadvisorContainerStats } from './kubernetes/stats.js'; +import { getNodes } from './kubernetes/structureNodes.js'; const debug = initDebug('greenframe:services:container'); diff --git a/src/services/container/kubernetes/__tests__/mergePodStatsWithNetworkStats.ts b/src/services/container/kubernetes/__tests__/mergePodStatsWithNetworkStats.ts index d3f4f7b..04458b2 100644 --- a/src/services/container/kubernetes/__tests__/mergePodStatsWithNetworkStats.ts +++ b/src/services/container/kubernetes/__tests__/mergePodStatsWithNetworkStats.ts @@ -1,11 +1,11 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ // @ts-expect-error polyfill import structuredClone from 'core-js-pure/actual/structured-clone'; -import { KubernetesRuns } from '../..'; -import { CONTAINER_TYPES } from '../../../../constants'; -import { mergePodStatsWithNetworkStats } from '../mergePodStatsWithNetworkStats'; -import { Stat } from '../stats'; -import { Nodes } from '../structureNodes'; +import { KubernetesRuns } from '../../index.js'; +import { CONTAINER_TYPES } from '../../../../constants.js'; +import { mergePodStatsWithNetworkStats } from '../mergePodStatsWithNetworkStats.js'; +import { Stat } from '../stats.js'; +import { Nodes } from '../structureNodes.js'; const emptyStat = { network: { diff --git a/src/services/container/kubernetes/cadvisor.ts b/src/services/container/kubernetes/cadvisor.ts index 07f148b..e4b9de0 100644 --- a/src/services/container/kubernetes/cadvisor.ts +++ b/src/services/container/kubernetes/cadvisor.ts @@ -1,8 +1,8 @@ import { Writable } from 'node:stream'; -import { GREENFRAME_NAMESPACE } from '../../../constants'; -import { exec } from './client'; -import { getPodsByLabel } from './pods'; -import type { CadvisorContainerStats } from './stats'; +import { GREENFRAME_NAMESPACE } from '../../../constants.js'; +import { exec } from './client.js'; +import { getPodsByLabel } from './pods.js'; +import type { CadvisorContainerStats } from './stats.js'; const CADVISOR_LABEL = 'app=cadvisor'; diff --git a/src/services/container/kubernetes/client.ts b/src/services/container/kubernetes/client.ts index fa26398..7ce5b7d 100644 --- a/src/services/container/kubernetes/client.ts +++ b/src/services/container/kubernetes/client.ts @@ -1,12 +1,15 @@ import * as kube from '@kubernetes/client-node'; import axios from 'axios'; import https from 'node:https'; - +import request from 'request'; export const kc = new kube.KubeConfig(); export let kubeClient: kube.KubernetesObjectApi; export let kubeApi: kube.CoreV1Api; export let exec: kube.Exec; -const opts: https.AgentOptions = {}; +const opts: { + auth?: string; + servername?: string; +} = {}; let httpsAgent: https.Agent; export const initKubeConfig = async (configFile?: string) => { @@ -35,7 +38,10 @@ export const getKubernetesVersion = async () => { compiler: string; platform: string; }>(`${currentCluster.server}/version?timeout=32s`, { - ...opts, + auth: { + username: kc.getCurrentUser()?.username ?? '', + password: kc.getCurrentUser()?.password ?? '', + }, httpsAgent, }); const data = res.data; diff --git a/src/services/container/kubernetes/getContainerStats.ts b/src/services/container/kubernetes/getContainerStats.ts index 477d8ca..fdf9748 100644 --- a/src/services/container/kubernetes/getContainerStats.ts +++ b/src/services/container/kubernetes/getContainerStats.ts @@ -1,7 +1,7 @@ import initDebug from 'debug'; -import { getCadvisorMetrics } from './cadvisor'; -import { CadvisorContainerStats } from './stats'; -import { AugmentedPod } from './structureNodes'; +import { getCadvisorMetrics } from './cadvisor.js'; +import { CadvisorContainerStats } from './stats.js'; +import { AugmentedPod } from './structureNodes.js'; const debug = initDebug('greenframe:services:container:kubernetes:getContainerStats'); export const getContainerStats = async ( diff --git a/src/services/container/kubernetes/mergePodStatsWithNetworkStats.ts b/src/services/container/kubernetes/mergePodStatsWithNetworkStats.ts index 8429c5e..c807227 100644 --- a/src/services/container/kubernetes/mergePodStatsWithNetworkStats.ts +++ b/src/services/container/kubernetes/mergePodStatsWithNetworkStats.ts @@ -1,7 +1,7 @@ -import { KubernetesRuns, kubernetesStats } from '..'; -import { SubObjects } from '../../../types'; -import { Network } from './stats'; -import { Nodes } from './structureNodes'; +import { KubernetesRuns, kubernetesStats } from '../index.js'; +import { SubObjects } from '../../../types.js'; +import { Network } from './stats.js'; +import { Nodes } from './structureNodes.js'; /** * Merge pods stats with the network stats @@ -9,6 +9,7 @@ import { Nodes } from './structureNodes'; * Delete the network stats * @param nodes * @param runs + * @returns void */ export const mergePodStatsWithNetworkStats = (nodes: Nodes, runs: KubernetesRuns) => { for (const node of Object.keys(nodes)) { diff --git a/src/services/container/kubernetes/pods.ts b/src/services/container/kubernetes/pods.ts index 48b3cca..107658e 100644 --- a/src/services/container/kubernetes/pods.ts +++ b/src/services/container/kubernetes/pods.ts @@ -1,5 +1,5 @@ import * as kube from '@kubernetes/client-node'; -import { kubeApi } from './client'; +import { kubeApi } from './client.js'; export const getPodsByLabel = async (label: string, namespace = 'default') => { const response = await kubeApi.listNamespacedPod( diff --git a/src/services/container/kubernetes/structureNodes.ts b/src/services/container/kubernetes/structureNodes.ts index 92f3030..fd98dd4 100644 --- a/src/services/container/kubernetes/structureNodes.ts +++ b/src/services/container/kubernetes/structureNodes.ts @@ -1,10 +1,10 @@ import initDebug from 'debug'; import { V1Pod } from '@kubernetes/client-node'; -import { getCadvisorPods } from './cadvisor'; -import { getPodName, getNodeName, getPodsByLabel } from './pods'; -import { CONTAINER_TYPES } from '../../../constants'; -import { getContainerStats } from './getContainerStats'; -import { ValueOf } from '../../../types'; +import { getCadvisorPods } from './cadvisor.js'; +import { getPodName, getNodeName, getPodsByLabel } from './pods.js'; +import { CONTAINER_TYPES } from '../../../constants.js'; +import { getContainerStats } from './getContainerStats.js'; +import { ValueOf } from '../../../types.js'; const debug = initDebug('greenframe:services:container:structureNodes'); diff --git a/src/services/detectExecutablePath.ts b/src/services/detectExecutablePath.ts index 0ffe5c9..352b6dc 100644 --- a/src/services/detectExecutablePath.ts +++ b/src/services/detectExecutablePath.ts @@ -1,6 +1,6 @@ import { access } from 'node:fs'; import util from 'node:util'; -import ConfigurationError from './errors/ConfigurationError'; +import ConfigurationError from './errors/ConfigurationError.js'; const accessPromise = util.promisify(access); diff --git a/src/services/docker/index.js b/src/services/docker/index.js deleted file mode 100644 index a76041f..0000000 --- a/src/services/docker/index.js +++ /dev/null @@ -1,9 +0,0 @@ -const util = require('node:util'); -const exec = util.promisify(require('node:child_process').exec); - -async function getDockerVersion() { - const { stdout } = await exec('docker -v'); - return stdout.trim(); -} - -module.exports = { getDockerVersion }; diff --git a/src/services/docker/index.ts b/src/services/docker/index.ts new file mode 100644 index 0000000..a06fb92 --- /dev/null +++ b/src/services/docker/index.ts @@ -0,0 +1,8 @@ +import util from 'node:util'; +import { exec as execSync } from 'node:child_process'; +const exec = util.promisify(execSync); + +export async function getDockerVersion() { + const { stdout } = await exec('docker -v'); + return stdout.trim(); +} diff --git a/src/services/errors/ConfigurationError.js b/src/services/errors/ConfigurationError.js deleted file mode 100644 index 90d97ea..0000000 --- a/src/services/errors/ConfigurationError.js +++ /dev/null @@ -1,11 +0,0 @@ -const ERROR_CODES = require('./errorCodes'); - -class ConfigurationError extends Error { - constructor(message) { - super(message); // (1) - this.name = 'ConfigurationError'; // (2) - this.errorCode = ERROR_CODES.CONFIGURATION_ERROR; - } -} - -module.exports = ConfigurationError; diff --git a/src/services/errors/ConfigurationError.ts b/src/services/errors/ConfigurationError.ts new file mode 100644 index 0000000..faab617 --- /dev/null +++ b/src/services/errors/ConfigurationError.ts @@ -0,0 +1,10 @@ +import ERROR_CODES from './errorCodes.js'; + +export default class ConfigurationError extends Error { + errorCode: keyof typeof ERROR_CODES; + constructor(message: string) { + super(message); // (1) + this.name = 'ConfigurationError'; // (2) + this.errorCode = ERROR_CODES.CONFIGURATION_ERROR; + } +} diff --git a/src/services/errors/ScenarioError.js b/src/services/errors/ScenarioError.ts similarity index 54% rename from src/services/errors/ScenarioError.js rename to src/services/errors/ScenarioError.ts index 73c2d11..c4ebd39 100644 --- a/src/services/errors/ScenarioError.js +++ b/src/services/errors/ScenarioError.ts @@ -1,11 +1,12 @@ -const ERROR_CODES = require('./errorCodes'); +import ERROR_CODES from './errorCodes.js'; class ScenarioError extends Error { - constructor(message) { + errorCode: keyof typeof ERROR_CODES; + constructor(message: string) { super(message); // (1) this.name = 'ScenarioError'; // (2) this.errorCode = ERROR_CODES.SCENARIO_FAILED; } } -module.exports = ScenarioError; +export default ScenarioError; diff --git a/src/services/errors/Sentry.js b/src/services/errors/Sentry.ts similarity index 74% rename from src/services/errors/Sentry.js rename to src/services/errors/Sentry.ts index 61cca52..e5612a7 100644 --- a/src/services/errors/Sentry.js +++ b/src/services/errors/Sentry.ts @@ -1,4 +1,4 @@ -const Sentry = require('@sentry/node'); +import * as Sentry from '@sentry/node'; Sentry.init({ dsn: 'https://ef45583ebb964bc485f37ef92d01609f@o956285.ingest.sentry.io/5905652', @@ -9,8 +9,6 @@ Sentry.init({ tracesSampleRate: 1, }); -const logErrorOnSentry = (e) => { +export default (e: Error) => { Sentry.captureException(e); }; - -module.exports = logErrorOnSentry; diff --git a/src/services/errors/errorCodes.js b/src/services/errors/errorCodes.js deleted file mode 100644 index eec02e7..0000000 --- a/src/services/errors/errorCodes.js +++ /dev/null @@ -1,8 +0,0 @@ -const ERROR_CODES = { - SCENARIO_FAILED: 'SCENARIO_FAILED', - CONFIGURATION_ERROR: 'CONFIGURATION_ERROR', - THRESHOLD_EXCEEDED: 'THRESHOLD_EXCEEDED', - UNKNOWN_ERROR: 'UNKNOWN_ERROR', -}; - -module.exports = ERROR_CODES; diff --git a/src/services/errors/errorCodes.ts b/src/services/errors/errorCodes.ts new file mode 100644 index 0000000..df9b103 --- /dev/null +++ b/src/services/errors/errorCodes.ts @@ -0,0 +1,6 @@ +export default { + SCENARIO_FAILED: 'SCENARIO_FAILED' as const, + CONFIGURATION_ERROR: 'CONFIGURATION_ERROR' as const, + THRESHOLD_EXCEEDED: 'THRESHOLD_EXCEEDED' as const, + UNKNOWN_ERROR: 'UNKNOWN_ERROR' as const, +}; diff --git a/src/services/git/__tests__/index.js b/src/services/git/__tests__/index.ts similarity index 88% rename from src/services/git/__tests__/index.js rename to src/services/git/__tests__/index.ts index 5ca99bc..69af92a 100644 --- a/src/services/git/__tests__/index.js +++ b/src/services/git/__tests__/index.ts @@ -1,18 +1,21 @@ jest.mock('../utils'); -const { +import { getCommitMessage, getBranchName, getCommitId, getCommitAncestorWithDefaultBranch, -} = require('../utils'); - -const { retrieveGitInformations } = require('../index'); +} from '../utils.js'; +import { retrieveGitInformations } from '../index.js'; describe('#retrieveGitInformations', () => { beforeEach(() => { + // @ts-expect-error Jest mock getCommitMessage.mockResolvedValue('DEFAULT COMMIT MESSAGE'); + // @ts-expect-error Jest mock getBranchName.mockResolvedValue('default_branch_name'); + // @ts-expect-error Jest mock getCommitId.mockResolvedValue('default-commit-id'); + // @ts-expect-error Jest mock getCommitAncestorWithDefaultBranch.mockResolvedValue('default-branch-commit-id'); }); @@ -75,9 +78,13 @@ describe('#retrieveGitInformations', () => { }); afterEach(() => { + // @ts-expect-error Jest mock getCommitMessage.mockReset(); + // @ts-expect-error Jest mock getBranchName.mockReset(); + // @ts-expect-error Jest mock getCommitId.mockReset(); + // @ts-expect-error Jest mock getCommitAncestorWithDefaultBranch.mockReset(); }); }); diff --git a/src/services/git/__tests__/utils.js b/src/services/git/__tests__/utils.ts similarity index 85% rename from src/services/git/__tests__/utils.js rename to src/services/git/__tests__/utils.ts index 69db133..2b3eaa6 100644 --- a/src/services/git/__tests__/utils.js +++ b/src/services/git/__tests__/utils.ts @@ -3,21 +3,21 @@ jest.mock('node:child_process', () => ({ })); jest.mock('node:util', () => ({ - promisify: (cb) => cb, + promisify: (cb: CallableFunction) => cb, })); -const { exec } = require('node:child_process'); - -const { +import { exec } from 'node:child_process'; +import { getCommitMessage, getBranchName, getCommitId, getDirectCommitAncestor, getCommitAncestorWithDefaultBranch, -} = require('../utils'); +} from '../utils.js'; describe('#getCommitMessage', () => { it('Should call exec', async () => { + // @ts-expect-error Jest mock exec.mockReturnValue({ stdout: 'COMMIT MESSAGE' }); const commitMessage = await getCommitMessage(); expect(exec).toHaveBeenCalledTimes(1); @@ -25,12 +25,14 @@ describe('#getCommitMessage', () => { expect(commitMessage).toBe('COMMIT MESSAGE'); }); afterEach(() => { + // @ts-expect-error Jest mock exec.mockClear(); }); }); describe('#getBranchName', () => { it('Should call exec', async () => { + // @ts-expect-error Jest mock exec.mockReturnValue({ stdout: 'BRANCH NAME' }); const branchMessage = await getBranchName(); expect(exec).toHaveBeenCalledTimes(1); @@ -38,12 +40,14 @@ describe('#getBranchName', () => { expect(branchMessage).toBe('BRANCH NAME'); }); afterEach(() => { + // @ts-expect-error Jest mock exec.mockClear(); }); }); describe('#getCommitId', () => { it('Should call exec', async () => { + // @ts-expect-error Jest mock exec.mockReturnValue({ stdout: 'COMMIT ID' }); const commitMessage = await getCommitId(); expect(exec).toHaveBeenCalledTimes(1); @@ -51,12 +55,14 @@ describe('#getCommitId', () => { expect(commitMessage).toBe('COMMIT ID'); }); afterEach(() => { + // @ts-expect-error Jest mock exec.mockClear(); }); }); describe('#getDirectCommitAncestor', () => { it('Should call exec', async () => { + // @ts-expect-error Jest mock exec.mockReturnValue({ stdout: 'DIRECT COMMIT ANCESTOR' }); const commitMessage = await getDirectCommitAncestor(); expect(exec).toHaveBeenCalledTimes(1); @@ -65,6 +71,7 @@ describe('#getDirectCommitAncestor', () => { }); it('Should throw an error because exec print in stderr', async () => { + // @ts-expect-error Jest mock exec.mockReturnValue({ stdout: 'DIRECT COMMIT ANCESTOR', stderr: 'SOMETHING WENT WRONG', @@ -76,12 +83,14 @@ describe('#getDirectCommitAncestor', () => { }); afterEach(() => { + // @ts-expect-error Jest mock exec.mockClear(); }); }); describe('#getCommitAncestorWithDefaultBranch', () => { it('Should call exec', async () => { + // @ts-expect-error Jest mock exec.mockReturnValue({ stdout: 'COMMIT ANCESTOR' }); const commitMessage = await getCommitAncestorWithDefaultBranch('mybranch'); expect(exec).toHaveBeenCalledTimes(1); @@ -92,6 +101,7 @@ describe('#getCommitAncestorWithDefaultBranch', () => { }); it('Should throw an error because exec print in stderr', async () => { + // @ts-expect-error Jest mock exec.mockReturnValue({ stdout: 'COMMIT ANCESTOR', stderr: 'SOMETHING WENT WRONG', @@ -105,6 +115,7 @@ describe('#getCommitAncestorWithDefaultBranch', () => { }); afterEach(() => { + // @ts-expect-error Jest mock exec.mockClear(); }); }); diff --git a/src/services/git/index.js b/src/services/git/index.ts similarity index 71% rename from src/services/git/index.js rename to src/services/git/index.ts index 061ff09..cea8ac0 100644 --- a/src/services/git/index.js +++ b/src/services/git/index.ts @@ -1,14 +1,22 @@ -const { +import { getCommitMessage, getBranchName, getCommitId, getDirectCommitAncestor, getCommitAncestorWithDefaultBranch, -} = require('./utils'); +} from './utils.js'; -const retrieveGitInformations = async ( - { commitMessage, branchName, commitId } = {}, - defaultBranch +export const retrieveGitInformations = async ( + { + commitMessage, + branchName, + commitId, + }: { + commitMessage?: string; + branchName?: string; + commitId?: string; + } = {}, + defaultBranch?: string ) => { // If we are on master (default branch), then commit reference is the N-1 // Else commit reference is the commit origin of the current branch from master @@ -17,16 +25,10 @@ const retrieveGitInformations = async ( ? await getCommitAncestorWithDefaultBranch(defaultBranch) : await getDirectCommitAncestor(); - let gitInfos = { + return { commitMessage: commitMessage ?? (await getCommitMessage()), branchName: branchName ?? (await getBranchName()), commitId: commitId ?? (await getCommitId()), defaultBranchCommitReference, }; - - return gitInfos; -}; - -module.exports = { - retrieveGitInformations, }; diff --git a/src/services/git/utils.js b/src/services/git/utils.ts similarity index 67% rename from src/services/git/utils.js rename to src/services/git/utils.ts index a4e9659..3d886f2 100644 --- a/src/services/git/utils.js +++ b/src/services/git/utils.ts @@ -1,33 +1,34 @@ -const util = require('node:util'); -const exec = util.promisify(require('node:child_process').exec); +import util from 'node:util'; +import { exec as execSync } from 'node:child_process'; +const exec = util.promisify(execSync); -const getCommitMessage = async () => { +export const getCommitMessage = async () => { try { const { stdout } = await exec('git log -1 --pretty=%B'); return stdout.trim(); - } catch (error) { + } catch (error: any) { console.warn('getCommitMessage:', error.message); return 'defaultAnalyseName'; } }; -const getBranchName = async () => { +export const getBranchName = async () => { const { stdout } = await exec('git branch --show-current'); return stdout.trim(); }; -const getCommitId = async () => { +export const getCommitId = async () => { try { const { stdout } = await exec('git rev-parse HEAD'); return stdout.trim(); - } catch (error) { + } catch (error: any) { console.warn('getCommitId:', error.message); return 'empty-----------------------------------'; } }; -const getDirectCommitAncestor = async () => { +export const getDirectCommitAncestor = async () => { try { const { stdout, stderr } = await exec(`printf $(git rev-parse HEAD^)`); if (stderr) { @@ -40,7 +41,7 @@ const getDirectCommitAncestor = async () => { } }; -const getCommitAncestorWithDefaultBranch = async (defaultBranch) => { +export const getCommitAncestorWithDefaultBranch = async (defaultBranch: string) => { try { const { stdout, stderr } = await exec( `printf $(git merge-base origin/${defaultBranch} HEAD)` @@ -54,11 +55,3 @@ const getCommitAncestorWithDefaultBranch = async (defaultBranch) => { // Return nothing and do not fail the process. } }; - -module.exports = { - getCommitMessage, - getBranchName, - getCommitId, - getDirectCommitAncestor, - getCommitAncestorWithDefaultBranch, -}; diff --git a/src/services/parseConfigFile.js b/src/services/parseConfigFile.ts similarity index 71% rename from src/services/parseConfigFile.js rename to src/services/parseConfigFile.ts index d1dcfc8..fb505ad 100644 --- a/src/services/parseConfigFile.js +++ b/src/services/parseConfigFile.ts @@ -1,17 +1,17 @@ -const fs = require('node:fs'); -const yaml = require('js-yaml'); -const util = require('node:util'); -const ConfigurationError = require('./errors/ConfigurationError'); -const analyze = require('../commands/analyze'); +import yaml from 'js-yaml'; +import fs from 'node:fs'; +import util from 'node:util'; +import { DEFAULT_CONFIG_FILE } from '../commands/analyze.js'; +import ConfigurationError from './errors/ConfigurationError.js'; const FILE_NOT_FOUND = 'ENOENT'; const readFile = util.promisify(fs.readFile); -const isMissingDefaultConfigFile = (path, error) => { - return path === analyze.DEFAULT_CONFIG_FILE && error.code === FILE_NOT_FOUND; +const isMissingDefaultConfigFile = (path: string, error: any) => { + return path === DEFAULT_CONFIG_FILE && error.code === FILE_NOT_FOUND; }; -const parseConfigFile = async (path) => { +export const parseConfigFile = async (path: string) => { try { const file = await readFile(path, 'utf8'); let fileContent; @@ -46,7 +46,28 @@ const parseConfigFile = async (path) => { ignoreHTTPSErrors, locale, timezoneId, - } = fileContent; + } = fileContent as { + scenario?: string; + scenarios?: string[]; + baseURL?: string; + samples?: number; + useAdblock?: boolean; + threshold?: number; + projectName?: string; + containers?: string[]; + databaseContainers?: string[]; + kubeContainers?: string[]; + kubeDatabaseContainers?: string[]; + extraHosts?: string[]; + envVar?: string[]; + envFile?: string; + kubeConfig?: string; + dockerdHost?: string; + dockerdPort?: number; + ignoreHTTPSErrors?: boolean; + locale?: string; + timezoneId?: string; + }; return { args: { @@ -75,7 +96,7 @@ const parseConfigFile = async (path) => { }, }; } - } catch (error) { + } catch (error: any) { if (error.name === 'YAMLException') { throw new yaml.YAMLException(`${path} is not a valid yaml`); } else if (!isMissingDefaultConfigFile(path, error)) { @@ -84,10 +105,10 @@ const parseConfigFile = async (path) => { } }; -const definedProps = (obj) => +const definedProps = (obj: object) => Object.fromEntries(Object.entries(obj).filter(([, v]) => v !== undefined)); -const resolveParams = ( +export const resolveParams = ( defaultFlags = {}, configFileParams = { args: {}, flags: {} }, commandParams = { args: {}, flags: {} } @@ -126,7 +147,7 @@ const resolveParams = ( if (!args.scenarios) { args.scenarios = [ { - path: '../../src/examples/visit.js', + path: '../../src/examples/visit.cjs', name: 'main scenario', threshold: flags.threshold, }, @@ -139,5 +160,3 @@ const resolveParams = ( return { flags, args }; }; - -module.exports = { parseConfigFile, resolveParams }; diff --git a/src/services/readFileToString.js b/src/services/readFileToString.ts similarity index 72% rename from src/services/readFileToString.js rename to src/services/readFileToString.ts index 252cf54..02282a3 100644 --- a/src/services/readFileToString.js +++ b/src/services/readFileToString.ts @@ -1,9 +1,9 @@ -const fs = require('node:fs'); -const util = require('node:util'); +import fs from 'node:fs'; +import util from 'node:util'; const readFile = util.promisify(fs.readFile); -const path = require('node:path'); +import path from 'node:path'; -const readFileToString = async (configFilePath, scenarioPath) => { +export const readFileToString = async (configFilePath: string, scenarioPath: string) => { const configFileFolder = path.dirname(configFilePath); // Resolve path regarding where you launch the command and where the config file is located. @@ -15,7 +15,3 @@ const readFileToString = async (configFilePath, scenarioPath) => { const scenarioBuffered = await readFile(resolvedScenarioPath); return Buffer.from(scenarioBuffered).toString(); }; - -module.exports = { - readFileToString, -}; diff --git a/src/tasks/addKubeGreenframeDaemonset.ts b/src/tasks/addKubeGreenframeDaemonset.ts index b84cc79..efad067 100644 --- a/src/tasks/addKubeGreenframeDaemonset.ts +++ b/src/tasks/addKubeGreenframeDaemonset.ts @@ -1,6 +1,6 @@ -import { TaskWrapper } from 'listr2/dist/lib/task-wrapper'; -import { GREENFRAME_NAMESPACE } from '../constants'; -import { kubeClient } from '../services/container/kubernetes/client'; +import { ListrTaskWrapper } from 'listr2'; +import { GREENFRAME_NAMESPACE } from '../constants.js'; +import { kubeClient } from '../services/container/kubernetes/client.js'; const greenframeDaemonset = { apiVersion: 'apps/v1', @@ -142,7 +142,7 @@ export const addKubeGreenframeDaemonset = async ( // eslint-disable-next-line @typescript-eslint/no-explicit-any _: any, // eslint-disable-next-line @typescript-eslint/no-explicit-any - task: TaskWrapper + task: ListrTaskWrapper ) => { const { body } = await kubeClient.list('apps/v1', 'DaemonSet', GREENFRAME_NAMESPACE); if (body.items.some((item) => item.metadata?.name === 'cadvisor')) { diff --git a/src/tasks/addKubeGreenframeNamespace.ts b/src/tasks/addKubeGreenframeNamespace.ts index 1165543..85c8bc8 100644 --- a/src/tasks/addKubeGreenframeNamespace.ts +++ b/src/tasks/addKubeGreenframeNamespace.ts @@ -1,14 +1,14 @@ import { HttpError } from '@kubernetes/client-node'; -import { TaskWrapper } from 'listr2/dist/lib/task-wrapper'; -import { GREENFRAME_NAMESPACE } from '../constants'; -import { kubeApi } from '../services/container/kubernetes/client'; -import ConfigurationError from '../services/errors/ConfigurationError'; +import { ListrTaskWrapper } from 'listr2'; +import { GREENFRAME_NAMESPACE } from '../constants.js'; +import { kubeApi } from '../services/container/kubernetes/client.js'; +import ConfigurationError from '../services/errors/ConfigurationError.js'; export const addKubeGreenframeNamespace = async ( // eslint-disable-next-line @typescript-eslint/no-explicit-any _: any, // eslint-disable-next-line @typescript-eslint/no-explicit-any - task: TaskWrapper + task: ListrTaskWrapper ) => { const namespace = { metadata: { diff --git a/src/tasks/checkGreenFrameSecretToken.ts b/src/tasks/checkGreenFrameSecretToken.ts index c016e55..c6d265f 100644 --- a/src/tasks/checkGreenFrameSecretToken.ts +++ b/src/tasks/checkGreenFrameSecretToken.ts @@ -1,4 +1,4 @@ -import ConfigurationError from '../services/errors/ConfigurationError'; +import ConfigurationError from '../services/errors/ConfigurationError.js'; export default async () => { if (!process.env.GREENFRAME_SECRET_TOKEN) { diff --git a/src/tasks/createNewAnalysis.js b/src/tasks/createNewAnalysis.ts similarity index 68% rename from src/tasks/createNewAnalysis.js rename to src/tasks/createNewAnalysis.ts index b785f59..7be691d 100644 --- a/src/tasks/createNewAnalysis.js +++ b/src/tasks/createNewAnalysis.ts @@ -1,14 +1,15 @@ -const ConfigurationError = require('../services/errors/ConfigurationError'); +import { ListrContext } from 'listr2'; +import { createAnalysis } from '../services/api/analyses.js'; +import ConfigurationError from '../services/errors/ConfigurationError.js'; +import axios from 'axios'; -const { createAnalysis } = require('../services/api/analyses'); -const createNewAnalysis = async (ctx) => { +const createNewAnalysis = async (ctx: ListrContext) => { const { args, flags } = ctx; try { const { data } = await createAnalysis({ scenarios: args.scenarios, baseURL: args.baseURL, - threshold: flags.threshold, samples: flags.samples, useAdblock: flags.useAdblock, locale: flags.locale, @@ -18,7 +19,11 @@ const createNewAnalysis = async (ctx) => { gitInfos: ctx.gitInfos, }); ctx.analysisId = data.id; - } catch (error_) { + } catch (error_: unknown) { + if (!axios.isAxiosError(error_)) { + throw error_; + } + const error = error_.response?.status === 401 ? new ConfigurationError( @@ -32,4 +37,4 @@ const createNewAnalysis = async (ctx) => { } }; -module.exports = createNewAnalysis; +export default createNewAnalysis; diff --git a/src/tasks/deleteKubeGreenframeNamespace.ts b/src/tasks/deleteKubeGreenframeNamespace.ts index 56e4fb9..aa8dd69 100644 --- a/src/tasks/deleteKubeGreenframeNamespace.ts +++ b/src/tasks/deleteKubeGreenframeNamespace.ts @@ -1,14 +1,12 @@ import { HttpError } from '@kubernetes/client-node'; -import { TaskWrapper } from 'listr2/dist/lib/task-wrapper'; -import { GREENFRAME_NAMESPACE } from '../constants'; -import { kubeApi } from '../services/container/kubernetes/client'; -import ConfigurationError from '../services/errors/ConfigurationError'; +import { ListrRenderer, ListrTaskWrapper } from 'listr2'; +import { GREENFRAME_NAMESPACE } from '../constants.js'; +import { kubeApi } from '../services/container/kubernetes/client.js'; +import ConfigurationError from '../services/errors/ConfigurationError.js'; export const deleteKubeGreenframeNamespace = async ( - // eslint-disable-next-line @typescript-eslint/no-explicit-any - _: any, - // eslint-disable-next-line @typescript-eslint/no-explicit-any - task: TaskWrapper + _: unknown, + task: ListrTaskWrapper ) => { try { const { body: existingNamespaces } = await kubeApi.listNamespace(); diff --git a/src/tasks/detectDockerVersion.js b/src/tasks/detectDockerVersion.js deleted file mode 100644 index ab1fbb2..0000000 --- a/src/tasks/detectDockerVersion.js +++ /dev/null @@ -1,12 +0,0 @@ -const { getDockerVersion } = require('../services/docker'); -const ConfigurationError = require('../services/errors/ConfigurationError'); - -module.exports = async (_, task) => { - try { - task.title = await getDockerVersion(); - } catch { - throw new ConfigurationError( - 'Docker is not installed or is not accessible on your machine. Check https://docs.greenframe.io for more informations.' - ); - } -}; diff --git a/src/tasks/detectDockerVersion.ts b/src/tasks/detectDockerVersion.ts new file mode 100644 index 0000000..0d41e9a --- /dev/null +++ b/src/tasks/detectDockerVersion.ts @@ -0,0 +1,17 @@ +import { ListrRenderer, ListrTaskWrapper } from 'listr2'; + +import { getDockerVersion } from '../services/docker/index.js'; +import ConfigurationError from '../services/errors/ConfigurationError.js'; + +export default async ( + _: unknown, + task: ListrTaskWrapper +) => { + try { + task.title = await getDockerVersion(); + } catch { + throw new ConfigurationError( + 'Docker is not installed or is not accessible on your machine. Check https://docs.greenframe.io for more informations.' + ); + } +}; diff --git a/src/tasks/detectKubernetesVersion.ts b/src/tasks/detectKubernetesVersion.ts index 2055b79..7db5356 100644 --- a/src/tasks/detectKubernetesVersion.ts +++ b/src/tasks/detectKubernetesVersion.ts @@ -1,10 +1,11 @@ -import { TaskWrapper } from 'listr2/dist/lib/task-wrapper'; -import { getKubernetesVersion } from '../services/container/kubernetes/client'; +import { ListrRenderer, ListrTaskWrapper } from 'listr2'; +import { getKubernetesVersion } from '../services/container/kubernetes/client.js'; +import ConfigurationError from '../services/errors/ConfigurationError.js'; -import ConfigurationError from '../services/errors/ConfigurationError'; - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export default async function (_: any, task: TaskWrapper) { +export default async function ( + _: unknown, + task: ListrTaskWrapper +) { try { task.title = await getKubernetesVersion(); } catch (error) { diff --git a/src/tasks/displayAnalysisResult.js b/src/tasks/displayAnalysisResult.ts similarity index 69% rename from src/tasks/displayAnalysisResult.js rename to src/tasks/displayAnalysisResult.ts index ac3ff07..0db9998 100644 --- a/src/tasks/displayAnalysisResult.js +++ b/src/tasks/displayAnalysisResult.ts @@ -1,10 +1,13 @@ -const ERROR_CODES = require('../services/errors/errorCodes'); -const STATUS = require('../status').STATUS; +import { AnalysisResult } from '../services/computeAnalysisResult.js'; +import { ScenarioResult } from '../services/computeScenarioResult.js'; + +import ERROR_CODES from '../services/errors/errorCodes.js'; +import { STATUS } from '../status.js'; const APP_BASE_URL = process.env.APP_URL ?? 'https://app.greenframe.io'; -const computeTotalMetric = (metric) => Math.round(metric * 1000) / 1000; -const formatTotal = (total, unit) => { +const computeTotalMetric = (metric: number) => Math.round(metric * 1000) / 1000; +const formatTotal = (total: number, unit: string) => { if (total >= 1_000_000 && unit === 'g') { return `${computeTotalMetric(total / 1_000_000)} t`; } @@ -20,15 +23,30 @@ const formatTotal = (total, unit) => { return `${computeTotalMetric(total)} ${unit}`; }; -const displayAnalysisResults = (result, isFree) => { +const displayAnalysisResults = ( + result: { + analysis: { id: string }; + scenarios: ScenarioResult[]; + computed: AnalysisResult; + }, + isFree: boolean +) => { console.info('\nAnalysis complete !\n'); console.info('Result summary:'); let maximumPrecision = 0; for (const scenario of result.scenarios) { console.info('\n'); - const totalCo2 = formatTotal(scenario.score?.co2?.total, 'g'); - const totalMWh = formatTotal(scenario.score?.wh?.total, 'Wh'); - const precision = Math.round(scenario.precision * 10) / 10; + const totalCo2 = formatTotal( + scenario.score?.co2?.total ?? Number.POSITIVE_INFINITY, + 'g' + ); + const totalMWh = formatTotal( + scenario.score?.wh?.total ?? Number.POSITIVE_INFINITY, + 'Wh' + ); + const precision = scenario.precision + ? Math.round(scenario.precision * 10) / 10 + : 0; if (precision > maximumPrecision) { maximumPrecision = precision; } @@ -74,8 +92,14 @@ Use greenframe open command to run your scenario in debug mode.`); } if (result.scenarios.length > 1) { - const totalCo2 = formatTotal(result.computed.score?.co2?.total, 'g'); - const totalMWh = formatTotal(result.computed.score?.wh?.total, 'Wh'); + const totalCo2 = formatTotal( + result.computed.score?.co2?.total ?? Number.POSITIVE_INFINITY, + 'g' + ); + const totalMWh = formatTotal( + result.computed.score?.wh?.total ?? Number.POSITIVE_INFINITY, + 'Wh' + ); console.info( `\nThe sum of estimated footprint is ${totalCo2} eq. co2 ± ${maximumPrecision}% (${totalMWh}).` @@ -96,4 +120,4 @@ Use greenframe open command to run your scenario in debug mode.`); ); }; -module.exports = displayAnalysisResults; +export default displayAnalysisResults; diff --git a/src/tasks/executeDistantAnalysis.js b/src/tasks/executeDistantAnalysis.js deleted file mode 100644 index 88a344a..0000000 --- a/src/tasks/executeDistantAnalysis.js +++ /dev/null @@ -1,10 +0,0 @@ -const { checkAnalysis } = require('../services/api/analyses'); - -const { findAllScenariosByAnalysisId } = require('../services/api/scenarios'); - -module.exports = async (ctx) => { - const { analysisId } = ctx; - const analysis = await checkAnalysis(analysisId); - const { data: scenarios } = await findAllScenariosByAnalysisId(analysisId); - ctx.result = { analysis, scenarios }; -}; diff --git a/src/tasks/executeDistantAnalysis.ts b/src/tasks/executeDistantAnalysis.ts new file mode 100644 index 0000000..daec0ea --- /dev/null +++ b/src/tasks/executeDistantAnalysis.ts @@ -0,0 +1,10 @@ +import { ListrContext } from 'listr2'; +import { checkAnalysis } from '../services/api/analyses.js'; +import { findAllScenariosByAnalysisId } from '../services/api/scenarios.js'; + +export default async (ctx: ListrContext) => { + const { analysisId } = ctx; + const analysis = await checkAnalysis(analysisId); + const { data: scenarios } = await findAllScenariosByAnalysisId(analysisId); + ctx.result = { analysis, scenarios }; +}; diff --git a/src/tasks/initializeKubeClient.ts b/src/tasks/initializeKubeClient.ts index 3504746..d95d061 100644 --- a/src/tasks/initializeKubeClient.ts +++ b/src/tasks/initializeKubeClient.ts @@ -1,7 +1,7 @@ -import { initKubeConfig } from '../services/container/kubernetes/client'; +import { ListrContext } from 'listr2'; +import { initKubeConfig } from '../services/container/kubernetes/client.js'; -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export default async (ctx: any) => { +export default async (ctx: ListrContext) => { const { flags } = ctx; await initKubeConfig(flags.kubeConfig); }; diff --git a/src/tasks/retrieveGitInformations.ts b/src/tasks/retrieveGitInformations.ts index f544b62..1ea900a 100644 --- a/src/tasks/retrieveGitInformations.ts +++ b/src/tasks/retrieveGitInformations.ts @@ -1,6 +1,10 @@ -import { retrieveGitInformations } from '../services/git'; +import { ListrContext, ListrRenderer, ListrTaskWrapper } from 'listr2'; +import { retrieveGitInformations } from '../services/git/index.js'; -export default async (ctx: any, task: any) => { +export default async ( + ctx: ListrContext, + task: ListrTaskWrapper +) => { try { const { flags } = ctx; ctx.gitInfos = await retrieveGitInformations( diff --git a/src/tasks/retrieveGreenFrameProject.js b/src/tasks/retrieveGreenFrameProject.ts similarity index 61% rename from src/tasks/retrieveGreenFrameProject.js rename to src/tasks/retrieveGreenFrameProject.ts index 5750fcf..1eb46c7 100644 --- a/src/tasks/retrieveGreenFrameProject.js +++ b/src/tasks/retrieveGreenFrameProject.ts @@ -1,8 +1,12 @@ -const ConfigurationError = require('../services/errors/ConfigurationError'); +import axios from 'axios'; +import { ListrContext, ListrRenderer, ListrTaskWrapper } from 'listr2'; +import { getProject } from '../services/api/projects.js'; +import ConfigurationError from '../services/errors/ConfigurationError.js'; -const { getProject } = require('../services/api/projects'); - -module.exports = async (ctx, task) => { +export default async ( + ctx: ListrContext, + task: ListrTaskWrapper +) => { const projectName = ctx.flags.projectName ?? process.env.GREENFRAME_PROJECT_NAME ?? @@ -16,7 +20,11 @@ module.exports = async (ctx, task) => { try { const { data } = await getProject(projectName); ctx.project = data; - } catch (error) { + } catch (error: any) { + if (!axios.isAxiosError(error)) { + throw error; + } + if (error.response?.status === 404) { task.title = `Creating a new project ${projectName}`; } else if (error.response?.status === 401) { diff --git a/src/tasks/runScenariosAndSaveResult.ts b/src/tasks/runScenariosAndSaveResult.ts index a699f5b..0dfdb69 100644 --- a/src/tasks/runScenariosAndSaveResult.ts +++ b/src/tasks/runScenariosAndSaveResult.ts @@ -1,15 +1,18 @@ import initDebug from 'debug'; -import { saveFinishedAnalysis } from '../services/api/analyses'; - -import { computeScenarioResult, ScenarioResult } from '../services/computeScenarioResult'; -import { executeScenarioAndGetContainerStats } from '../services/container'; -import ConfigurationError from '../services/errors/ConfigurationError'; -import ERROR_CODES from '../services/errors/errorCodes'; -import { computeAnalysisResult } from '../services/computeAnalysisResult'; +import { ListrContext } from 'listr2'; +import { saveFinishedAnalysis } from '../services/api/analyses.js'; +import { computeAnalysisResult } from '../services/computeAnalysisResult.js'; +import { + computeScenarioResult, + ScenarioResult, +} from '../services/computeScenarioResult.js'; +import { executeScenarioAndGetContainerStats } from '../services/container/index.js'; +import ConfigurationError from '../services/errors/ConfigurationError.js'; +import ERROR_CODES from '../services/errors/errorCodes.js'; const debug = initDebug('greenframe:tasks:runScenarioAndSaveResults'); -export default async (ctx: any) => { +export default async (ctx: ListrContext) => { const { analysisId, args, flags } = ctx; const resultScenarios: ScenarioResult[] = []; for (let index = 0; index < args.scenarios.length; index++) { diff --git a/src/types.ts b/src/types.ts index b90e7b7..7fec930 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,4 +1,4 @@ -import { CONTAINER_TYPES } from './constants'; +import { CONTAINER_TYPES } from './constants.js'; export type ValueOf = T[keyof T]; export type SubObjects = { diff --git a/tsconfig.json b/tsconfig.json index 27accb5..3a78899 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -25,9 +25,9 @@ // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ - "module": "Node16" /* Specify what module code is generated. */, + "module": "NodeNext" /* Specify what module code is generated. */, // "rootDir": "./", /* Specify the root folder within your source files. */ - "moduleResolution": "Node16" /* Specify how TypeScript looks up a file from a given module specifier. */, + "moduleResolution": "NodeNext" /* Specify how TypeScript looks up a file from a given module specifier. */, // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ diff --git a/yarn.lock b/yarn.lock index 2222449..6127660 100644 --- a/yarn.lock +++ b/yarn.lock @@ -115,576 +115,604 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/chunked-blob-reader-native@npm:3.310.0": - version: 3.310.0 - resolution: "@aws-sdk/chunked-blob-reader-native@npm:3.310.0" - dependencies: - "@aws-sdk/util-base64": 3.310.0 - tslib: ^2.5.0 - checksum: 8b9b88edcaa28b58277a06e95c1b01f1eb2bfba3d994031664957340ae2bc857f1575ec999e8dbd085242b52719228ebff05af1cc0228b1f9296646f4b2095cb - languageName: node - linkType: hard - -"@aws-sdk/chunked-blob-reader@npm:3.310.0": - version: 3.310.0 - resolution: "@aws-sdk/chunked-blob-reader@npm:3.310.0" +"@aws-sdk/client-cloudfront@npm:^3.525.0": + version: 3.533.0 + resolution: "@aws-sdk/client-cloudfront@npm:3.533.0" dependencies: + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/client-sts": 3.533.0 + "@aws-sdk/core": 3.533.0 + "@aws-sdk/credential-provider-node": 3.533.0 + "@aws-sdk/middleware-host-header": 3.533.0 + "@aws-sdk/middleware-logger": 3.533.0 + "@aws-sdk/middleware-recursion-detection": 3.533.0 + "@aws-sdk/middleware-user-agent": 3.533.0 + "@aws-sdk/region-config-resolver": 3.533.0 + "@aws-sdk/types": 3.533.0 + "@aws-sdk/util-endpoints": 3.533.0 + "@aws-sdk/util-user-agent-browser": 3.533.0 + "@aws-sdk/util-user-agent-node": 3.533.0 + "@aws-sdk/xml-builder": 3.533.0 + "@smithy/config-resolver": ^2.1.5 + "@smithy/core": ^1.3.8 + "@smithy/fetch-http-handler": ^2.4.5 + "@smithy/hash-node": ^2.1.4 + "@smithy/invalid-dependency": ^2.1.4 + "@smithy/middleware-content-length": ^2.1.4 + "@smithy/middleware-endpoint": ^2.4.6 + "@smithy/middleware-retry": ^2.1.7 + "@smithy/middleware-serde": ^2.2.1 + "@smithy/middleware-stack": ^2.1.4 + "@smithy/node-config-provider": ^2.2.5 + "@smithy/node-http-handler": ^2.4.3 + "@smithy/protocol-http": ^3.2.2 + "@smithy/smithy-client": ^2.4.5 + "@smithy/types": ^2.11.0 + "@smithy/url-parser": ^2.1.4 + "@smithy/util-base64": ^2.2.1 + "@smithy/util-body-length-browser": ^2.1.1 + "@smithy/util-body-length-node": ^2.2.2 + "@smithy/util-defaults-mode-browser": ^2.1.7 + "@smithy/util-defaults-mode-node": ^2.2.7 + "@smithy/util-endpoints": ^1.1.5 + "@smithy/util-middleware": ^2.1.4 + "@smithy/util-retry": ^2.1.4 + "@smithy/util-stream": ^2.1.5 + "@smithy/util-utf8": ^2.2.0 + "@smithy/util-waiter": ^2.1.4 tslib: ^2.5.0 - checksum: 4969fe05c6cea38d0a8dc3ec8e37cbd82a0a5b6f8c32ad6c7d02f0800bc3641e96356f47981c88b645b4dc2bdcb73d03d7ec67ac38d277dde8337b61688f815b + checksum: c9d526b33968f771af5ae5926102435a46389e8156aa3bde1699342469d79561d0f3658a2702e1b9d41a1f17c0241f39f8f2f073d8a93a4cb5869d480bd89d7c languageName: node linkType: hard -"@aws-sdk/client-s3@npm:^3.36.0": - version: 3.369.0 - resolution: "@aws-sdk/client-s3@npm:3.369.0" +"@aws-sdk/client-s3@npm:^3.36.0, @aws-sdk/client-s3@npm:^3.515.0": + version: 3.533.0 + resolution: "@aws-sdk/client-s3@npm:3.533.0" dependencies: "@aws-crypto/sha1-browser": 3.0.0 "@aws-crypto/sha256-browser": 3.0.0 "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/client-sts": 3.369.0 - "@aws-sdk/credential-provider-node": 3.369.0 - "@aws-sdk/hash-blob-browser": 3.369.0 - "@aws-sdk/hash-stream-node": 3.369.0 - "@aws-sdk/md5-js": 3.369.0 - "@aws-sdk/middleware-bucket-endpoint": 3.369.0 - "@aws-sdk/middleware-expect-continue": 3.369.0 - "@aws-sdk/middleware-flexible-checksums": 3.369.0 - "@aws-sdk/middleware-host-header": 3.369.0 - "@aws-sdk/middleware-location-constraint": 3.369.0 - "@aws-sdk/middleware-logger": 3.369.0 - "@aws-sdk/middleware-recursion-detection": 3.369.0 - "@aws-sdk/middleware-sdk-s3": 3.369.0 - "@aws-sdk/middleware-signing": 3.369.0 - "@aws-sdk/middleware-ssec": 3.369.0 - "@aws-sdk/middleware-user-agent": 3.369.0 - "@aws-sdk/signature-v4-multi-region": 3.369.0 - "@aws-sdk/types": 3.369.0 - "@aws-sdk/util-endpoints": 3.369.0 - "@aws-sdk/util-user-agent-browser": 3.369.0 - "@aws-sdk/util-user-agent-node": 3.369.0 - "@aws-sdk/xml-builder": 3.310.0 - "@smithy/config-resolver": ^1.0.1 - "@smithy/eventstream-serde-browser": ^1.0.1 - "@smithy/eventstream-serde-config-resolver": ^1.0.1 - "@smithy/eventstream-serde-node": ^1.0.1 - "@smithy/fetch-http-handler": ^1.0.1 - "@smithy/hash-node": ^1.0.1 - "@smithy/invalid-dependency": ^1.0.1 - "@smithy/middleware-content-length": ^1.0.1 - "@smithy/middleware-endpoint": ^1.0.1 - "@smithy/middleware-retry": ^1.0.2 - "@smithy/middleware-serde": ^1.0.1 - "@smithy/middleware-stack": ^1.0.1 - "@smithy/node-config-provider": ^1.0.1 - "@smithy/node-http-handler": ^1.0.2 - "@smithy/protocol-http": ^1.0.1 - "@smithy/smithy-client": ^1.0.3 - "@smithy/types": ^1.1.0 - "@smithy/url-parser": ^1.0.1 - "@smithy/util-base64": ^1.0.1 - "@smithy/util-body-length-browser": ^1.0.1 - "@smithy/util-body-length-node": ^1.0.1 - "@smithy/util-defaults-mode-browser": ^1.0.1 - "@smithy/util-defaults-mode-node": ^1.0.1 - "@smithy/util-retry": ^1.0.2 - "@smithy/util-stream": ^1.0.1 - "@smithy/util-utf8": ^1.0.1 - "@smithy/util-waiter": ^1.0.1 - fast-xml-parser: 4.2.5 + "@aws-sdk/client-sts": 3.533.0 + "@aws-sdk/core": 3.533.0 + "@aws-sdk/credential-provider-node": 3.533.0 + "@aws-sdk/middleware-bucket-endpoint": 3.533.0 + "@aws-sdk/middleware-expect-continue": 3.533.0 + "@aws-sdk/middleware-flexible-checksums": 3.533.0 + "@aws-sdk/middleware-host-header": 3.533.0 + "@aws-sdk/middleware-location-constraint": 3.533.0 + "@aws-sdk/middleware-logger": 3.533.0 + "@aws-sdk/middleware-recursion-detection": 3.533.0 + "@aws-sdk/middleware-sdk-s3": 3.533.0 + "@aws-sdk/middleware-signing": 3.533.0 + "@aws-sdk/middleware-ssec": 3.533.0 + "@aws-sdk/middleware-user-agent": 3.533.0 + "@aws-sdk/region-config-resolver": 3.533.0 + "@aws-sdk/signature-v4-multi-region": 3.533.0 + "@aws-sdk/types": 3.533.0 + "@aws-sdk/util-endpoints": 3.533.0 + "@aws-sdk/util-user-agent-browser": 3.533.0 + "@aws-sdk/util-user-agent-node": 3.533.0 + "@aws-sdk/xml-builder": 3.533.0 + "@smithy/config-resolver": ^2.1.5 + "@smithy/core": ^1.3.8 + "@smithy/eventstream-serde-browser": ^2.1.4 + "@smithy/eventstream-serde-config-resolver": ^2.1.4 + "@smithy/eventstream-serde-node": ^2.1.4 + "@smithy/fetch-http-handler": ^2.4.5 + "@smithy/hash-blob-browser": ^2.1.5 + "@smithy/hash-node": ^2.1.4 + "@smithy/hash-stream-node": ^2.1.4 + "@smithy/invalid-dependency": ^2.1.4 + "@smithy/md5-js": ^2.1.4 + "@smithy/middleware-content-length": ^2.1.4 + "@smithy/middleware-endpoint": ^2.4.6 + "@smithy/middleware-retry": ^2.1.7 + "@smithy/middleware-serde": ^2.2.1 + "@smithy/middleware-stack": ^2.1.4 + "@smithy/node-config-provider": ^2.2.5 + "@smithy/node-http-handler": ^2.4.3 + "@smithy/protocol-http": ^3.2.2 + "@smithy/smithy-client": ^2.4.5 + "@smithy/types": ^2.11.0 + "@smithy/url-parser": ^2.1.4 + "@smithy/util-base64": ^2.2.1 + "@smithy/util-body-length-browser": ^2.1.1 + "@smithy/util-body-length-node": ^2.2.2 + "@smithy/util-defaults-mode-browser": ^2.1.7 + "@smithy/util-defaults-mode-node": ^2.2.7 + "@smithy/util-endpoints": ^1.1.5 + "@smithy/util-retry": ^2.1.4 + "@smithy/util-stream": ^2.1.5 + "@smithy/util-utf8": ^2.2.0 + "@smithy/util-waiter": ^2.1.4 tslib: ^2.5.0 - checksum: 5e3abea9758c462aabd02a2473b302ddfbf2d98bf46ae4a26e01edeb0df88c7c368f5a20fbcd0cde4ae55c6425bbf971aeba3eef0c6966e7745a37a8f925315d + checksum: fd4d07bcaae01a48ab07605dc521f4ab8905c5dd67e8bef2803b1b488b8f4730daf3755e816919a92dc5d799977566109d5ae880da46347fbed83825b3823e18 languageName: node linkType: hard -"@aws-sdk/client-sso-oidc@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/client-sso-oidc@npm:3.369.0" +"@aws-sdk/client-sso-oidc@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/client-sso-oidc@npm:3.533.0" dependencies: "@aws-crypto/sha256-browser": 3.0.0 "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/middleware-host-header": 3.369.0 - "@aws-sdk/middleware-logger": 3.369.0 - "@aws-sdk/middleware-recursion-detection": 3.369.0 - "@aws-sdk/middleware-user-agent": 3.369.0 - "@aws-sdk/types": 3.369.0 - "@aws-sdk/util-endpoints": 3.369.0 - "@aws-sdk/util-user-agent-browser": 3.369.0 - "@aws-sdk/util-user-agent-node": 3.369.0 - "@smithy/config-resolver": ^1.0.1 - "@smithy/fetch-http-handler": ^1.0.1 - "@smithy/hash-node": ^1.0.1 - "@smithy/invalid-dependency": ^1.0.1 - "@smithy/middleware-content-length": ^1.0.1 - "@smithy/middleware-endpoint": ^1.0.1 - "@smithy/middleware-retry": ^1.0.2 - "@smithy/middleware-serde": ^1.0.1 - "@smithy/middleware-stack": ^1.0.1 - "@smithy/node-config-provider": ^1.0.1 - "@smithy/node-http-handler": ^1.0.2 - "@smithy/protocol-http": ^1.0.1 - "@smithy/smithy-client": ^1.0.3 - "@smithy/types": ^1.1.0 - "@smithy/url-parser": ^1.0.1 - "@smithy/util-base64": ^1.0.1 - "@smithy/util-body-length-browser": ^1.0.1 - "@smithy/util-body-length-node": ^1.0.1 - "@smithy/util-defaults-mode-browser": ^1.0.1 - "@smithy/util-defaults-mode-node": ^1.0.1 - "@smithy/util-retry": ^1.0.2 - "@smithy/util-utf8": ^1.0.1 + "@aws-sdk/client-sts": 3.533.0 + "@aws-sdk/core": 3.533.0 + "@aws-sdk/middleware-host-header": 3.533.0 + "@aws-sdk/middleware-logger": 3.533.0 + "@aws-sdk/middleware-recursion-detection": 3.533.0 + "@aws-sdk/middleware-user-agent": 3.533.0 + "@aws-sdk/region-config-resolver": 3.533.0 + "@aws-sdk/types": 3.533.0 + "@aws-sdk/util-endpoints": 3.533.0 + "@aws-sdk/util-user-agent-browser": 3.533.0 + "@aws-sdk/util-user-agent-node": 3.533.0 + "@smithy/config-resolver": ^2.1.5 + "@smithy/core": ^1.3.8 + "@smithy/fetch-http-handler": ^2.4.5 + "@smithy/hash-node": ^2.1.4 + "@smithy/invalid-dependency": ^2.1.4 + "@smithy/middleware-content-length": ^2.1.4 + "@smithy/middleware-endpoint": ^2.4.6 + "@smithy/middleware-retry": ^2.1.7 + "@smithy/middleware-serde": ^2.2.1 + "@smithy/middleware-stack": ^2.1.4 + "@smithy/node-config-provider": ^2.2.5 + "@smithy/node-http-handler": ^2.4.3 + "@smithy/protocol-http": ^3.2.2 + "@smithy/smithy-client": ^2.4.5 + "@smithy/types": ^2.11.0 + "@smithy/url-parser": ^2.1.4 + "@smithy/util-base64": ^2.2.1 + "@smithy/util-body-length-browser": ^2.1.1 + "@smithy/util-body-length-node": ^2.2.2 + "@smithy/util-defaults-mode-browser": ^2.1.7 + "@smithy/util-defaults-mode-node": ^2.2.7 + "@smithy/util-endpoints": ^1.1.5 + "@smithy/util-middleware": ^2.1.4 + "@smithy/util-retry": ^2.1.4 + "@smithy/util-utf8": ^2.2.0 tslib: ^2.5.0 - checksum: b45e904bf631c5649786eb4107fbe83021fa8952e6728c7e38788d05efe7cbe9c7ac607fe0b529a3cfbd5feec4503fce4752a6afa7486c95bb17f9cc35dd7ecb + peerDependencies: + "@aws-sdk/credential-provider-node": ^3.533.0 + checksum: 73aac8e78e8d0a03d0849ed185241260a2db37cb7ba01f5b08773bd03596f057648004491a21a304be9aa0fae57b65221e701f3906fcb2ccaae06233ef6f6fea languageName: node linkType: hard -"@aws-sdk/client-sso@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/client-sso@npm:3.369.0" +"@aws-sdk/client-sso@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/client-sso@npm:3.533.0" dependencies: "@aws-crypto/sha256-browser": 3.0.0 "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/middleware-host-header": 3.369.0 - "@aws-sdk/middleware-logger": 3.369.0 - "@aws-sdk/middleware-recursion-detection": 3.369.0 - "@aws-sdk/middleware-user-agent": 3.369.0 - "@aws-sdk/types": 3.369.0 - "@aws-sdk/util-endpoints": 3.369.0 - "@aws-sdk/util-user-agent-browser": 3.369.0 - "@aws-sdk/util-user-agent-node": 3.369.0 - "@smithy/config-resolver": ^1.0.1 - "@smithy/fetch-http-handler": ^1.0.1 - "@smithy/hash-node": ^1.0.1 - "@smithy/invalid-dependency": ^1.0.1 - "@smithy/middleware-content-length": ^1.0.1 - "@smithy/middleware-endpoint": ^1.0.1 - "@smithy/middleware-retry": ^1.0.2 - "@smithy/middleware-serde": ^1.0.1 - "@smithy/middleware-stack": ^1.0.1 - "@smithy/node-config-provider": ^1.0.1 - "@smithy/node-http-handler": ^1.0.2 - "@smithy/protocol-http": ^1.0.1 - "@smithy/smithy-client": ^1.0.3 - "@smithy/types": ^1.1.0 - "@smithy/url-parser": ^1.0.1 - "@smithy/util-base64": ^1.0.1 - "@smithy/util-body-length-browser": ^1.0.1 - "@smithy/util-body-length-node": ^1.0.1 - "@smithy/util-defaults-mode-browser": ^1.0.1 - "@smithy/util-defaults-mode-node": ^1.0.1 - "@smithy/util-retry": ^1.0.2 - "@smithy/util-utf8": ^1.0.1 + "@aws-sdk/core": 3.533.0 + "@aws-sdk/middleware-host-header": 3.533.0 + "@aws-sdk/middleware-logger": 3.533.0 + "@aws-sdk/middleware-recursion-detection": 3.533.0 + "@aws-sdk/middleware-user-agent": 3.533.0 + "@aws-sdk/region-config-resolver": 3.533.0 + "@aws-sdk/types": 3.533.0 + "@aws-sdk/util-endpoints": 3.533.0 + "@aws-sdk/util-user-agent-browser": 3.533.0 + "@aws-sdk/util-user-agent-node": 3.533.0 + "@smithy/config-resolver": ^2.1.5 + "@smithy/core": ^1.3.8 + "@smithy/fetch-http-handler": ^2.4.5 + "@smithy/hash-node": ^2.1.4 + "@smithy/invalid-dependency": ^2.1.4 + "@smithy/middleware-content-length": ^2.1.4 + "@smithy/middleware-endpoint": ^2.4.6 + "@smithy/middleware-retry": ^2.1.7 + "@smithy/middleware-serde": ^2.2.1 + "@smithy/middleware-stack": ^2.1.4 + "@smithy/node-config-provider": ^2.2.5 + "@smithy/node-http-handler": ^2.4.3 + "@smithy/protocol-http": ^3.2.2 + "@smithy/smithy-client": ^2.4.5 + "@smithy/types": ^2.11.0 + "@smithy/url-parser": ^2.1.4 + "@smithy/util-base64": ^2.2.1 + "@smithy/util-body-length-browser": ^2.1.1 + "@smithy/util-body-length-node": ^2.2.2 + "@smithy/util-defaults-mode-browser": ^2.1.7 + "@smithy/util-defaults-mode-node": ^2.2.7 + "@smithy/util-endpoints": ^1.1.5 + "@smithy/util-middleware": ^2.1.4 + "@smithy/util-retry": ^2.1.4 + "@smithy/util-utf8": ^2.2.0 tslib: ^2.5.0 - checksum: f5842bf628b48d0e44a4a47b4771e56641da0c1bf37c244dd6ba779d7339c8ff5025b46003e55a83ab7cfb19b64b6fe025e7d803cbabae1ccda1f84ae4465564 + checksum: 2661bcf9d7628256124dc34574e0a874c786eb416109b2b9f2d68c929274f21fbcd615c08c516418e150ee86664a2835a3d77f43b641d356d94af20d2d9e9a5f languageName: node linkType: hard -"@aws-sdk/client-sts@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/client-sts@npm:3.369.0" +"@aws-sdk/client-sts@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/client-sts@npm:3.533.0" dependencies: "@aws-crypto/sha256-browser": 3.0.0 "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/credential-provider-node": 3.369.0 - "@aws-sdk/middleware-host-header": 3.369.0 - "@aws-sdk/middleware-logger": 3.369.0 - "@aws-sdk/middleware-recursion-detection": 3.369.0 - "@aws-sdk/middleware-sdk-sts": 3.369.0 - "@aws-sdk/middleware-signing": 3.369.0 - "@aws-sdk/middleware-user-agent": 3.369.0 - "@aws-sdk/types": 3.369.0 - "@aws-sdk/util-endpoints": 3.369.0 - "@aws-sdk/util-user-agent-browser": 3.369.0 - "@aws-sdk/util-user-agent-node": 3.369.0 - "@smithy/config-resolver": ^1.0.1 - "@smithy/fetch-http-handler": ^1.0.1 - "@smithy/hash-node": ^1.0.1 - "@smithy/invalid-dependency": ^1.0.1 - "@smithy/middleware-content-length": ^1.0.1 - "@smithy/middleware-endpoint": ^1.0.1 - "@smithy/middleware-retry": ^1.0.1 - "@smithy/middleware-serde": ^1.0.1 - "@smithy/middleware-stack": ^1.0.1 - "@smithy/node-config-provider": ^1.0.1 - "@smithy/node-http-handler": ^1.0.1 - "@smithy/protocol-http": ^1.1.0 - "@smithy/smithy-client": ^1.0.2 - "@smithy/types": ^1.1.0 - "@smithy/url-parser": ^1.0.1 - "@smithy/util-base64": ^1.0.1 - "@smithy/util-body-length-browser": ^1.0.1 - "@smithy/util-body-length-node": ^1.0.1 - "@smithy/util-defaults-mode-browser": ^1.0.1 - "@smithy/util-defaults-mode-node": ^1.0.1 - "@smithy/util-retry": ^1.0.1 - "@smithy/util-utf8": ^1.0.1 - fast-xml-parser: 4.2.5 + "@aws-sdk/core": 3.533.0 + "@aws-sdk/middleware-host-header": 3.533.0 + "@aws-sdk/middleware-logger": 3.533.0 + "@aws-sdk/middleware-recursion-detection": 3.533.0 + "@aws-sdk/middleware-user-agent": 3.533.0 + "@aws-sdk/region-config-resolver": 3.533.0 + "@aws-sdk/types": 3.533.0 + "@aws-sdk/util-endpoints": 3.533.0 + "@aws-sdk/util-user-agent-browser": 3.533.0 + "@aws-sdk/util-user-agent-node": 3.533.0 + "@smithy/config-resolver": ^2.1.5 + "@smithy/core": ^1.3.8 + "@smithy/fetch-http-handler": ^2.4.5 + "@smithy/hash-node": ^2.1.4 + "@smithy/invalid-dependency": ^2.1.4 + "@smithy/middleware-content-length": ^2.1.4 + "@smithy/middleware-endpoint": ^2.4.6 + "@smithy/middleware-retry": ^2.1.7 + "@smithy/middleware-serde": ^2.2.1 + "@smithy/middleware-stack": ^2.1.4 + "@smithy/node-config-provider": ^2.2.5 + "@smithy/node-http-handler": ^2.4.3 + "@smithy/protocol-http": ^3.2.2 + "@smithy/smithy-client": ^2.4.5 + "@smithy/types": ^2.11.0 + "@smithy/url-parser": ^2.1.4 + "@smithy/util-base64": ^2.2.1 + "@smithy/util-body-length-browser": ^2.1.1 + "@smithy/util-body-length-node": ^2.2.2 + "@smithy/util-defaults-mode-browser": ^2.1.7 + "@smithy/util-defaults-mode-node": ^2.2.7 + "@smithy/util-endpoints": ^1.1.5 + "@smithy/util-middleware": ^2.1.4 + "@smithy/util-retry": ^2.1.4 + "@smithy/util-utf8": ^2.2.0 tslib: ^2.5.0 - checksum: 20ae54af825bf2b5804dcf21832a3eb450fa7be63c3f87df640902dc999e7315ddc543aa5f8801b8705b0be52ae5b5ff094f9578f7a50d9570e5001747485a18 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-env@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/credential-provider-env@npm:3.369.0" - dependencies: - "@aws-sdk/types": 3.369.0 - "@smithy/property-provider": ^1.0.1 - "@smithy/types": ^1.1.0 - tslib: ^2.5.0 - checksum: c9be6d1cd18f2e707290538f31ccf25ec9333ff622a66af4aaf9adad0ddf06be9136a680d620f8baa00dce83ee36660c91415da9d7662f1f8e1013434c698dc7 + peerDependencies: + "@aws-sdk/credential-provider-node": ^3.533.0 + checksum: bb1a6494507ab5facf6fc3193c97fff499a63822210733cb0f4748cbf5c4f32a016a6329c81e1d2e5c11923525c0375f65b36294026a35e50910c818d06f6ae2 languageName: node linkType: hard -"@aws-sdk/credential-provider-ini@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/credential-provider-ini@npm:3.369.0" +"@aws-sdk/core@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/core@npm:3.533.0" dependencies: - "@aws-sdk/credential-provider-env": 3.369.0 - "@aws-sdk/credential-provider-process": 3.369.0 - "@aws-sdk/credential-provider-sso": 3.369.0 - "@aws-sdk/credential-provider-web-identity": 3.369.0 - "@aws-sdk/types": 3.369.0 - "@smithy/credential-provider-imds": ^1.0.1 - "@smithy/property-provider": ^1.0.1 - "@smithy/shared-ini-file-loader": ^1.0.1 - "@smithy/types": ^1.1.0 + "@smithy/core": ^1.3.8 + "@smithy/protocol-http": ^3.2.2 + "@smithy/signature-v4": ^2.1.4 + "@smithy/smithy-client": ^2.4.5 + "@smithy/types": ^2.11.0 + fast-xml-parser: 4.2.5 tslib: ^2.5.0 - checksum: 9a220a58bea982a60e780dc13354d65dae668320aad929fe374a018e6b2c5d2949ad97971e2bb5466f79b451aa3f3883a2081ea15e132090df4d59f534f429fa + checksum: 1d9ec244dfa1485b8e7b3e1d1ea9d5cfd91b09121f7bda837d38ce844bf51c5fcd1e7b965f8898333dbc157d1b45992f78e7edfee51c78c0c617cd6e519bb9b1 languageName: node linkType: hard -"@aws-sdk/credential-provider-node@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/credential-provider-node@npm:3.369.0" +"@aws-sdk/credential-provider-env@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/credential-provider-env@npm:3.533.0" dependencies: - "@aws-sdk/credential-provider-env": 3.369.0 - "@aws-sdk/credential-provider-ini": 3.369.0 - "@aws-sdk/credential-provider-process": 3.369.0 - "@aws-sdk/credential-provider-sso": 3.369.0 - "@aws-sdk/credential-provider-web-identity": 3.369.0 - "@aws-sdk/types": 3.369.0 - "@smithy/credential-provider-imds": ^1.0.1 - "@smithy/property-provider": ^1.0.1 - "@smithy/shared-ini-file-loader": ^1.0.1 - "@smithy/types": ^1.1.0 + "@aws-sdk/types": 3.533.0 + "@smithy/property-provider": ^2.1.4 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: f187e2339a4e1489259bf34447c00ad4170c4a8bdfc6a55920504ce85ca9673bbd88480cdff693154ed1073941dff3663e8b93312ef47ac55698e21459316d07 + checksum: a5f061aaa75966cf1c0c7320071a1e3c79666235b6541539a886d37b397d77e80d0d4f53b6573c050de003b017146a99f648c650e4d5936bf0a05db5cf515a64 languageName: node linkType: hard -"@aws-sdk/credential-provider-process@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/credential-provider-process@npm:3.369.0" +"@aws-sdk/credential-provider-http@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/credential-provider-http@npm:3.533.0" dependencies: - "@aws-sdk/types": 3.369.0 - "@smithy/property-provider": ^1.0.1 - "@smithy/shared-ini-file-loader": ^1.0.1 - "@smithy/types": ^1.1.0 + "@aws-sdk/types": 3.533.0 + "@smithy/fetch-http-handler": ^2.4.5 + "@smithy/node-http-handler": ^2.4.3 + "@smithy/property-provider": ^2.1.4 + "@smithy/protocol-http": ^3.2.2 + "@smithy/smithy-client": ^2.4.5 + "@smithy/types": ^2.11.0 + "@smithy/util-stream": ^2.1.5 tslib: ^2.5.0 - checksum: b11173f15c9104ffe261fdc9a4d5c180fdb1f146171f63753a7e901f4b19257d8b351fbd54d817422003be3bd21ac8358cbf642d87d4c905820849a15c6a5798 + checksum: e5f5825deee6718089b1e330de8610375d00e3c10357b1d1e2d223bf733c14d541dd9ddfd3adb289c307b9aab381b5773d259df5b0ff90387f372983981d1d74 languageName: node linkType: hard -"@aws-sdk/credential-provider-sso@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/credential-provider-sso@npm:3.369.0" +"@aws-sdk/credential-provider-ini@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.533.0" dependencies: - "@aws-sdk/client-sso": 3.369.0 - "@aws-sdk/token-providers": 3.369.0 - "@aws-sdk/types": 3.369.0 - "@smithy/property-provider": ^1.0.1 - "@smithy/shared-ini-file-loader": ^1.0.1 - "@smithy/types": ^1.1.0 + "@aws-sdk/client-sts": 3.533.0 + "@aws-sdk/credential-provider-env": 3.533.0 + "@aws-sdk/credential-provider-process": 3.533.0 + "@aws-sdk/credential-provider-sso": 3.533.0 + "@aws-sdk/credential-provider-web-identity": 3.533.0 + "@aws-sdk/types": 3.533.0 + "@smithy/credential-provider-imds": ^2.2.6 + "@smithy/property-provider": ^2.1.4 + "@smithy/shared-ini-file-loader": ^2.3.5 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: aa7ad0f03be2d710e34a6f895bac24efbe7286b89cfeaddb3c1d75b6dcc535667160792e8c06ab4bb2aa80d67869d25d7c41c2f801f517cb4e384c3e992e0162 + checksum: 6edc0e3396fb0e520ab8838fae7fa935d9b9a5f03de4b953ff70fb7b6b95ed99cdadb832164adfde5100e74c92615fc9c30582479e3518f03fda7fd54bcb2524 languageName: node linkType: hard -"@aws-sdk/credential-provider-web-identity@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/credential-provider-web-identity@npm:3.369.0" +"@aws-sdk/credential-provider-node@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.533.0" dependencies: - "@aws-sdk/types": 3.369.0 - "@smithy/property-provider": ^1.0.1 - "@smithy/types": ^1.1.0 + "@aws-sdk/credential-provider-env": 3.533.0 + "@aws-sdk/credential-provider-http": 3.533.0 + "@aws-sdk/credential-provider-ini": 3.533.0 + "@aws-sdk/credential-provider-process": 3.533.0 + "@aws-sdk/credential-provider-sso": 3.533.0 + "@aws-sdk/credential-provider-web-identity": 3.533.0 + "@aws-sdk/types": 3.533.0 + "@smithy/credential-provider-imds": ^2.2.6 + "@smithy/property-provider": ^2.1.4 + "@smithy/shared-ini-file-loader": ^2.3.5 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: 1f5da856a04cd40fe2d81f124f55ae88e5eabfe13409384e7f28f2b985866bac629444839d2c1949e62a6b76ac55ddc59f5391fb3699ed061a8b71c24297f442 + checksum: e0e0794b46bfe27ff11071c2cbf839076a2d74834ddc7926c0b055e25a94b0f4dd0db7c039df2b47e415458ff3984c9f792e5a6173df653987f0701c1716146f languageName: node linkType: hard -"@aws-sdk/hash-blob-browser@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/hash-blob-browser@npm:3.369.0" +"@aws-sdk/credential-provider-process@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/credential-provider-process@npm:3.533.0" dependencies: - "@aws-sdk/chunked-blob-reader": 3.310.0 - "@aws-sdk/chunked-blob-reader-native": 3.310.0 - "@aws-sdk/types": 3.369.0 + "@aws-sdk/types": 3.533.0 + "@smithy/property-provider": ^2.1.4 + "@smithy/shared-ini-file-loader": ^2.3.5 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: c7dab18462b9386063e5ebd08f61fa10e20fe6d282d7985166d6b6ef3d35dad4a65506ba129e47dbd7d35634b6bba21c4c361b249b4aa6eb4a21dffddd2d8fe0 + checksum: 4cc85d7a2ae14955edc8e4aa403f5907a00ace47d8606ad6f5f67f8bfc05fdb9b7d6274ed9128a165e386dc81d7b870dc47aa8a3924202509d76ff07732406a0 languageName: node linkType: hard -"@aws-sdk/hash-stream-node@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/hash-stream-node@npm:3.369.0" +"@aws-sdk/credential-provider-sso@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.533.0" dependencies: - "@aws-sdk/types": 3.369.0 - "@aws-sdk/util-utf8": 3.310.0 + "@aws-sdk/client-sso": 3.533.0 + "@aws-sdk/token-providers": 3.533.0 + "@aws-sdk/types": 3.533.0 + "@smithy/property-provider": ^2.1.4 + "@smithy/shared-ini-file-loader": ^2.3.5 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: 7095c60093b645aceed2c97a9c64c2eacf768c49d2dfb905f62129117f1fd45cf1f6a5ad884fbbae99793b6f8dd62b2ad2c730874fd06df114c72bdde780f1f3 + checksum: 0f753f8c709e4df83b89d9d5d626447a5dcdb8442b665fd9042ba329098917d83f215352ddad05be5b666527f2fdf18c8bb9ec08c9c832316575df2cbe9728bb languageName: node linkType: hard -"@aws-sdk/is-array-buffer@npm:3.310.0": - version: 3.310.0 - resolution: "@aws-sdk/is-array-buffer@npm:3.310.0" +"@aws-sdk/credential-provider-web-identity@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/credential-provider-web-identity@npm:3.533.0" dependencies: + "@aws-sdk/client-sts": 3.533.0 + "@aws-sdk/types": 3.533.0 + "@smithy/property-provider": ^2.1.4 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: ddd1536ad16e29186fb5055bc279cfe9790b7c32552e1ee21e31d4e410e1df297b06c94c6117f854ec368d29e60a231dd8cc77e5b604a6260e7602876fd047f8 + checksum: ea69a23802876bbe6db4e1172a17d2dc7520228f3d7ffb9ef7e9bf269e6ca228b45667772c335261a4f00fe5ba4cd9eb923e0a85a3a0fe76cdf3794bac644622 languageName: node linkType: hard -"@aws-sdk/md5-js@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/md5-js@npm:3.369.0" +"@aws-sdk/middleware-bucket-endpoint@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.533.0" dependencies: - "@aws-sdk/types": 3.369.0 - "@aws-sdk/util-utf8": 3.310.0 + "@aws-sdk/types": 3.533.0 + "@aws-sdk/util-arn-parser": 3.495.0 + "@smithy/node-config-provider": ^2.2.5 + "@smithy/protocol-http": ^3.2.2 + "@smithy/types": ^2.11.0 + "@smithy/util-config-provider": ^2.2.1 tslib: ^2.5.0 - checksum: a77614c370aa603c46825a137f0dc75f74937fdd34f6b6444969f9d0facd190721fce45cead34538bff371f78e18a4f91d54d12e71e59f39b59855d4e050ea3a + checksum: 41f1e9244691b9f0e44c0c5b9ae965839c5760127e684e68acd735a893754592760fd3737e985447e542e47f7ffad88c2f62ce3b07a6216c930c55799298374b languageName: node linkType: hard -"@aws-sdk/middleware-bucket-endpoint@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.369.0" +"@aws-sdk/middleware-expect-continue@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/middleware-expect-continue@npm:3.533.0" dependencies: - "@aws-sdk/types": 3.369.0 - "@aws-sdk/util-arn-parser": 3.310.0 - "@smithy/protocol-http": ^1.1.0 - "@smithy/types": ^1.1.0 - "@smithy/util-config-provider": ^1.0.1 + "@aws-sdk/types": 3.533.0 + "@smithy/protocol-http": ^3.2.2 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: ea7c4afe4fe934c3ee91e6722e1bba091eaa14a756c060e26c6eac1334838a75d13d480a064ec597499d32a685912f1e5abcb1d722534b6c0d243183ee4bdeb6 + checksum: fab49f86c80c5e331d75904db92f418718474231169ca117de61c0ad1ac08f03d3e812f787f305fc10078ba7a7c7196d7a743c9baaa67b25941f3640bf7017b5 languageName: node linkType: hard -"@aws-sdk/middleware-expect-continue@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/middleware-expect-continue@npm:3.369.0" - dependencies: - "@aws-sdk/types": 3.369.0 - "@smithy/protocol-http": ^1.1.0 - "@smithy/types": ^1.1.0 - tslib: ^2.5.0 - checksum: 73263bc1e9c3dc456cf02df9fc7a1c86e01e38da4904e0f2e42ba950f44286e8bc081b5413b1f14c14a275e5405137ed5bb1227d5fd8a6f6846989a3ea762205 - languageName: node - linkType: hard - -"@aws-sdk/middleware-flexible-checksums@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.369.0" +"@aws-sdk/middleware-flexible-checksums@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.533.0" dependencies: "@aws-crypto/crc32": 3.0.0 "@aws-crypto/crc32c": 3.0.0 - "@aws-sdk/types": 3.369.0 - "@smithy/is-array-buffer": ^1.0.1 - "@smithy/protocol-http": ^1.1.0 - "@smithy/types": ^1.1.0 - "@smithy/util-utf8": ^1.0.1 + "@aws-sdk/types": 3.533.0 + "@smithy/is-array-buffer": ^2.1.1 + "@smithy/protocol-http": ^3.2.2 + "@smithy/types": ^2.11.0 + "@smithy/util-utf8": ^2.2.0 tslib: ^2.5.0 - checksum: 803178805e97816fc32c72b38f86a1c41ec2ec072b718a4eb273dc375d57ae1b1fbba4c364bdc2810ff0c062acbdf974de6c39b8592efdae37c7365733a96737 + checksum: e3ff0401fd5e878c90931c141ab29592887feb595c8ff289f8c6166c8f0f38791847efec30bb91a77e6c4f6062de25f40bd289efc4cf179a8662ed311c68a68a languageName: node linkType: hard -"@aws-sdk/middleware-host-header@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/middleware-host-header@npm:3.369.0" +"@aws-sdk/middleware-host-header@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/middleware-host-header@npm:3.533.0" dependencies: - "@aws-sdk/types": 3.369.0 - "@smithy/protocol-http": ^1.1.0 - "@smithy/types": ^1.1.0 + "@aws-sdk/types": 3.533.0 + "@smithy/protocol-http": ^3.2.2 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: a490ca54f2603bb24a067bda6267d4a35e6499efbd35c0394ed31a381c01907ec989043b5ead949e99e5bdb2aff39c465ba34a29aec00e261efc4155984575a7 + checksum: fee2934a3eaa186fa8d91f89a2c9674dfcc1bd365cf923df7e064f07bedab2161dcd41b0c6de37e98279060eea30a7b957d34b0d20422b7876a27ec85a2809dd languageName: node linkType: hard -"@aws-sdk/middleware-location-constraint@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/middleware-location-constraint@npm:3.369.0" +"@aws-sdk/middleware-location-constraint@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/middleware-location-constraint@npm:3.533.0" dependencies: - "@aws-sdk/types": 3.369.0 - "@smithy/types": ^1.1.0 + "@aws-sdk/types": 3.533.0 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: dfd2be918102f868f874e1d1fba9e3d4d9e41eb29cc80332a71996edf5534c832626c9a592d95d3bdb4d54af7f21bf55d7c602cdc2838300d43e88d4ea38d16c + checksum: 2a4457fbe9d81fa1fa8a836715b91419b7ce07d06a2fb0cba4ea6757e19fd171c5ae89302317912226f0147c6614d9a9698a7f0fb952fdd799685d691dfdbfa6 languageName: node linkType: hard -"@aws-sdk/middleware-logger@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/middleware-logger@npm:3.369.0" +"@aws-sdk/middleware-logger@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/middleware-logger@npm:3.533.0" dependencies: - "@aws-sdk/types": 3.369.0 - "@smithy/types": ^1.1.0 + "@aws-sdk/types": 3.533.0 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: 9228d8af36191e1cdcb5bb8f97d961e42f9324e1da196d2df55b90fc76fd3731e698d611c5fb465da7d0bf3a5cd2940390a2abd99d956710b9acf27b0a2c62e7 + checksum: a72e7e664ae911df18f3df3ecb0025ccd2947478a151da3b33a54839e5324e458cc70e8e3c72f6118fe4789c12e2789a1c0e63a02d1cad8c87caf428fb28efd7 languageName: node linkType: hard -"@aws-sdk/middleware-recursion-detection@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/middleware-recursion-detection@npm:3.369.0" +"@aws-sdk/middleware-recursion-detection@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/middleware-recursion-detection@npm:3.533.0" dependencies: - "@aws-sdk/types": 3.369.0 - "@smithy/protocol-http": ^1.1.0 - "@smithy/types": ^1.1.0 + "@aws-sdk/types": 3.533.0 + "@smithy/protocol-http": ^3.2.2 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: 2e9e634d30c873d61a75e2435d4dace6a58e27cc407ca79089b7b996ac5a42f38d733b8515bfbe82b75f165e8b4a461469b46d3acecbea98fb0d1b5c7eaf40a2 + checksum: 8f1e0df60e3f43fbf16d953e39a32ff9cea4fbeb1e89ccd2143c124f29085b0065548f407c53fd165b3be587caa203f37255e3b3ef4896b12f25258f41a8493e languageName: node linkType: hard -"@aws-sdk/middleware-sdk-s3@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/middleware-sdk-s3@npm:3.369.0" +"@aws-sdk/middleware-sdk-s3@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/middleware-sdk-s3@npm:3.533.0" dependencies: - "@aws-sdk/types": 3.369.0 - "@aws-sdk/util-arn-parser": 3.310.0 - "@smithy/protocol-http": ^1.1.0 - "@smithy/types": ^1.1.0 + "@aws-sdk/types": 3.533.0 + "@aws-sdk/util-arn-parser": 3.495.0 + "@smithy/node-config-provider": ^2.2.5 + "@smithy/protocol-http": ^3.2.2 + "@smithy/signature-v4": ^2.1.4 + "@smithy/smithy-client": ^2.4.5 + "@smithy/types": ^2.11.0 + "@smithy/util-config-provider": ^2.2.1 tslib: ^2.5.0 - checksum: e89de70399296acbfebad2eac14453e4496746a67f51906c5de6b0ee991787c9c1fa30ea376036889d610975b78795733ba193a1bee16f5bf72fcf21ea3c719f + checksum: 42fe6f877c7b134a9856858e27af02991af72f853f44a039d21367c2dfd7883924b39d7814f7cd40045122cdfb068ba8a03535e2857a10652e168a3412c39f71 languageName: node linkType: hard -"@aws-sdk/middleware-sdk-sts@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/middleware-sdk-sts@npm:3.369.0" +"@aws-sdk/middleware-signing@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/middleware-signing@npm:3.533.0" dependencies: - "@aws-sdk/middleware-signing": 3.369.0 - "@aws-sdk/types": 3.369.0 - "@smithy/types": ^1.1.0 + "@aws-sdk/types": 3.533.0 + "@smithy/property-provider": ^2.1.4 + "@smithy/protocol-http": ^3.2.2 + "@smithy/signature-v4": ^2.1.4 + "@smithy/types": ^2.11.0 + "@smithy/util-middleware": ^2.1.4 tslib: ^2.5.0 - checksum: 24af557b042bd5f1952885036f53256c04067d40092e53895af5f90223a9838ee50cb39cc8491b7623778d77dd164460bd4cc08de2c4b78183ea84e94a7b5a8a + checksum: 688d5ac4e0dbbc461e925dfdafaa050011794004cec63297a4c86149ab6247a5af0c648a1b1945831f78ef4b89f15136d4cde1ac2b96dd938c4d42bf94a7fd4d languageName: node linkType: hard -"@aws-sdk/middleware-signing@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/middleware-signing@npm:3.369.0" +"@aws-sdk/middleware-ssec@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/middleware-ssec@npm:3.533.0" dependencies: - "@aws-sdk/types": 3.369.0 - "@smithy/property-provider": ^1.0.1 - "@smithy/protocol-http": ^1.1.0 - "@smithy/signature-v4": ^1.0.1 - "@smithy/types": ^1.1.0 - "@smithy/util-middleware": ^1.0.1 + "@aws-sdk/types": 3.533.0 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: 5d18cde4623f5ffa6393cf08f76a8091ae45a2ac2f9de4eac4dbcac69b8b634d7d0079950c3be69cccd1c6021c108265adac844b554d91771f700f14bbebb7b0 + checksum: 37a43c5d61773858c94cc3405cabdfb1feb85c86b1fe0dfb8fc1b24b9469d4098c0a5021934d5a537ae10ac179bacd4f5c892b435ecfb9b43c104ffe232c3354 languageName: node linkType: hard -"@aws-sdk/middleware-ssec@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/middleware-ssec@npm:3.369.0" +"@aws-sdk/middleware-user-agent@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/middleware-user-agent@npm:3.533.0" dependencies: - "@aws-sdk/types": 3.369.0 - "@smithy/types": ^1.1.0 + "@aws-sdk/types": 3.533.0 + "@aws-sdk/util-endpoints": 3.533.0 + "@smithy/protocol-http": ^3.2.2 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: 37e88556032121be84381766af9a9244c2a3d1c31bb5fface2d9ed0d07ab0552e698905a35ef48f37a3014dcbd3fa254b2fb6992a6325fdfcbd7430854d64c70 + checksum: 9a669cdae20c166d5a12257a99782ea758d23a99c3d5509234ee49c8831d6ef2ec9d4972c11ae62930b4363bf0962128007c5de061a6199d9fab809d3cd1932c languageName: node linkType: hard -"@aws-sdk/middleware-user-agent@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/middleware-user-agent@npm:3.369.0" +"@aws-sdk/region-config-resolver@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/region-config-resolver@npm:3.533.0" dependencies: - "@aws-sdk/types": 3.369.0 - "@aws-sdk/util-endpoints": 3.369.0 - "@smithy/protocol-http": ^1.1.0 - "@smithy/types": ^1.1.0 + "@aws-sdk/types": 3.533.0 + "@smithy/node-config-provider": ^2.2.5 + "@smithy/types": ^2.11.0 + "@smithy/util-config-provider": ^2.2.1 + "@smithy/util-middleware": ^2.1.4 tslib: ^2.5.0 - checksum: 9b0846e32faedcc2775ad7101ffe5fec75a0bd1550cb3271b7942c51f88e941509dbb6f030828a6b90aceec6021b8f79e075a543476b595fa57a8fc613fe4b0f + checksum: 6d3b03a2ac5669a1a1292b6c1627e37fe31109e914f9417dbeabfb3a2d0cb8fea949fb4136e168be39d471ed65c2d261d6cab333bc292f8b77733b1c2bd8e165 languageName: node linkType: hard -"@aws-sdk/signature-v4-multi-region@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/signature-v4-multi-region@npm:3.369.0" +"@aws-sdk/signature-v4-multi-region@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/signature-v4-multi-region@npm:3.533.0" dependencies: - "@aws-sdk/types": 3.369.0 - "@smithy/protocol-http": ^1.1.0 - "@smithy/signature-v4": ^1.0.1 - "@smithy/types": ^1.1.0 + "@aws-sdk/middleware-sdk-s3": 3.533.0 + "@aws-sdk/types": 3.533.0 + "@smithy/protocol-http": ^3.2.2 + "@smithy/signature-v4": ^2.1.4 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - peerDependencies: - "@aws-sdk/signature-v4-crt": ^3.118.0 - peerDependenciesMeta: - "@aws-sdk/signature-v4-crt": - optional: true - checksum: 04193745e7899b594e8837a6b3c475f9a0d5ae060fa4f36692fac3ebc6ea78041faa3638d3cf327ec3fdf1e4855f77eccd7385f280a2222998ae144311e4ef3a + checksum: dec7fed9f44a9064cb03a25d2671fc3d9b523e6f65e370876b5aa80e6fd4f62066ac2506dbd5a54f11c08ab1837544e662e701943b750f53b17952ec40610f7a languageName: node linkType: hard -"@aws-sdk/token-providers@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/token-providers@npm:3.369.0" +"@aws-sdk/token-providers@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/token-providers@npm:3.533.0" dependencies: - "@aws-sdk/client-sso-oidc": 3.369.0 - "@aws-sdk/types": 3.369.0 - "@smithy/property-provider": ^1.0.1 - "@smithy/shared-ini-file-loader": ^1.0.1 - "@smithy/types": ^1.1.0 + "@aws-sdk/client-sso-oidc": 3.533.0 + "@aws-sdk/types": 3.533.0 + "@smithy/property-provider": ^2.1.4 + "@smithy/shared-ini-file-loader": ^2.3.5 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: e0e7aa4eacdf48d97704d3720c675494fcb3584d0ee05528e770ac4e508cfbfcff3d707b489d4b71c1cabfa020cb2ec6c3c3c5253128788ed94f9c02de66d22a + checksum: f5fe1f51317ed0f38060d78f258b7df2891c88456c2e5614036895c2b34671a37386a0d30e61395063698512e80983f2b0c3cd27bab1dd1a68be2bc23622fce4 languageName: node linkType: hard -"@aws-sdk/types@npm:3.369.0, @aws-sdk/types@npm:^3.222.0": - version: 3.369.0 - resolution: "@aws-sdk/types@npm:3.369.0" +"@aws-sdk/types@npm:3.533.0, @aws-sdk/types@npm:^3.222.0": + version: 3.533.0 + resolution: "@aws-sdk/types@npm:3.533.0" dependencies: - "@smithy/types": 1.1.0 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: 41da67a3b9c1a09b641c0dcb81cdfd4bd441c8b91ec1e31fdc453314391785d6f7c48ac3629ce80258533d63cc621982b01b0985ce9dd8c25abb732b43fd8a9a + checksum: d6461c89d8f10776f55672255815ea4e13f474cfa6eb0cf7de6907998259a220e576125eaee4203ff869aaef32ebed6269166e68b647892a3a929691b6e23bf5 languageName: node linkType: hard -"@aws-sdk/util-arn-parser@npm:3.310.0": - version: 3.310.0 - resolution: "@aws-sdk/util-arn-parser@npm:3.310.0" +"@aws-sdk/util-arn-parser@npm:3.495.0": + version: 3.495.0 + resolution: "@aws-sdk/util-arn-parser@npm:3.495.0" dependencies: tslib: ^2.5.0 - checksum: faac1e10f8bb6c2fe5fee82bcb7ce56c2b37ae9ffdb2b78b0746a7a06005eaa5ea747a0a10eaf490c1c4907ecc327e1c94a600e26a069e023e54b8d63c031e96 + checksum: 130f1b1c0d2b9917782049693aa4ab6aec98858d6e2b46c14a3a6c4979e65073f731aec96aa0e1c04e927d0b32ad2d4a6a701e2a6d5d416c6ea35e670e4eb987 languageName: node linkType: hard -"@aws-sdk/util-base64@npm:3.310.0": - version: 3.310.0 - resolution: "@aws-sdk/util-base64@npm:3.310.0" +"@aws-sdk/util-endpoints@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/util-endpoints@npm:3.533.0" dependencies: - "@aws-sdk/util-buffer-from": 3.310.0 + "@aws-sdk/types": 3.533.0 + "@smithy/types": ^2.11.0 + "@smithy/util-endpoints": ^1.1.5 tslib: ^2.5.0 - checksum: 3c9f7c818401fe8332d2ce438c0660cc9be7db9a5eef68d7fafa30ddcc44b0af3ba9ea58092f0e2b2537a18ec0942ce3c8f12090d3e3b9568b6a94a0713e9de7 - languageName: node - linkType: hard - -"@aws-sdk/util-buffer-from@npm:3.310.0": - version: 3.310.0 - resolution: "@aws-sdk/util-buffer-from@npm:3.310.0" - dependencies: - "@aws-sdk/is-array-buffer": 3.310.0 - tslib: ^2.5.0 - checksum: 9c3bd9c0664a0cbb5270eb285a662274bb9c46ae0d79e0275a85e74659a4b1f094bab900994780fd70dd0152dc6d2d33a8bc681d87f3911fa48eae9f6c3558d6 - languageName: node - linkType: hard - -"@aws-sdk/util-endpoints@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/util-endpoints@npm:3.369.0" - dependencies: - "@aws-sdk/types": 3.369.0 - tslib: ^2.5.0 - checksum: d15363ebd66d8bb58452bda1577b787398b79761e88eae9310d31eabb5233db1c6411ab3ab2e3596c7f33081e4cb632acef6d9a16353c0f3ffabc343b4ce3575 + checksum: 362be328df40933efa9808805ee7ea59e7bc2bd367b9bae0484161cd059a4573588eba32c6785bc014cf18b0fb1a74c0062207a5e8b136b7e67a87acc91de8c8 languageName: node linkType: hard @@ -697,32 +725,32 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/util-user-agent-browser@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/util-user-agent-browser@npm:3.369.0" +"@aws-sdk/util-user-agent-browser@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/util-user-agent-browser@npm:3.533.0" dependencies: - "@aws-sdk/types": 3.369.0 - "@smithy/types": ^1.1.0 + "@aws-sdk/types": 3.533.0 + "@smithy/types": ^2.11.0 bowser: ^2.11.0 tslib: ^2.5.0 - checksum: cffbb9d918d9150a9c28c4a83fcdcf7b632d058bb1f95250ba94f6df5c66b21c6ad826fdf57a0ce0006c57be57813ebac07e41e2a576a31cf17ade98c5ad0053 + checksum: d9dae0bf720dd96607245b8de161e532cf95b5e599e59395c5f2ec13ee651e75ca924c44114a5c69c8864fe8680790cb8b1a5bdb0c973d24f7b6fdfe72b3e415 languageName: node linkType: hard -"@aws-sdk/util-user-agent-node@npm:3.369.0": - version: 3.369.0 - resolution: "@aws-sdk/util-user-agent-node@npm:3.369.0" +"@aws-sdk/util-user-agent-node@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/util-user-agent-node@npm:3.533.0" dependencies: - "@aws-sdk/types": 3.369.0 - "@smithy/node-config-provider": ^1.0.1 - "@smithy/types": ^1.1.0 + "@aws-sdk/types": 3.533.0 + "@smithy/node-config-provider": ^2.2.5 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 peerDependencies: aws-crt: ">=1.0.0" peerDependenciesMeta: aws-crt: optional: true - checksum: 5f0d43d4861207fbc684e8081e3d352ba53c573cf71e18ece5f9d78e1a37170b485a0fd2a1e16b22205a20f23bb18ed12549508b5e61bd35996a3e80c330e68a + checksum: 54764cfe0e6e5cd567d3e896cd4ebc8bed16e1dadeb81cf1edbb9ea810a6da7cbb239e9e174144ac22dd38fa847dd8a9c55c64928b2ada114ddcebc71ad091ef languageName: node linkType: hard @@ -735,22 +763,13 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/util-utf8@npm:3.310.0": - version: 3.310.0 - resolution: "@aws-sdk/util-utf8@npm:3.310.0" - dependencies: - "@aws-sdk/util-buffer-from": 3.310.0 - tslib: ^2.5.0 - checksum: 4045e79b8e3593e12233b359ba77d1b4c162fd9fcb4ab3b58b711c41b725552306dd91402b8d57ce5be080c76309f046a7a0c4ff704d12f9ba71e3b25b810086 - languageName: node - linkType: hard - -"@aws-sdk/xml-builder@npm:3.310.0": - version: 3.310.0 - resolution: "@aws-sdk/xml-builder@npm:3.310.0" +"@aws-sdk/xml-builder@npm:3.533.0": + version: 3.533.0 + resolution: "@aws-sdk/xml-builder@npm:3.533.0" dependencies: + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: fc17fd8f68470702d947948ada46097bdddecafdc68fa57bf584320e92748e8ef0372a51999d3ab7902ba4f62c2dbfbdec2dba1180fca19bb5127bad1ef0e48b + checksum: 905664236aaa82e01b52cba21c918d57f7d8a67479854030413934795a6100cde74344c69b1b60f73801ceb7aa02f3393917bc87aa257b548eb874605fc37c67 languageName: node linkType: hard @@ -1105,7 +1124,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.21.0": +"@babel/runtime@npm:^7.15.4": version: 7.22.6 resolution: "@babel/runtime@npm:7.22.6" dependencies: @@ -1975,139 +1994,84 @@ __metadata: languageName: node linkType: hard -"@oclif/color@npm:^1.0.7": - version: 1.0.8 - resolution: "@oclif/color@npm:1.0.8" +"@oclif/core@npm:^3.21.0, @oclif/core@npm:^3.23.0, @oclif/core@npm:^3.25.0": + version: 3.25.0 + resolution: "@oclif/core@npm:3.25.0" dependencies: - ansi-styles: ^4.2.1 - chalk: ^4.1.0 - strip-ansi: ^6.0.1 - supports-color: ^8.1.1 - tslib: ^2 - checksum: b44c3e56ba88e860a933b8a49af361cfea1abb73899b14ea8ceed05fbfd0d31bb226d6dd14aa7a0fd9f9cb3d085a6c4b3a97a5dbff800f976d4df69f0f8514bb - languageName: node - linkType: hard - -"@oclif/core@npm:^1.2.0, @oclif/core@npm:^1.6.4": - version: 1.26.2 - resolution: "@oclif/core@npm:1.26.2" - dependencies: - "@oclif/linewrap": ^1.0.0 - "@oclif/screen": ^3.0.4 - ansi-escapes: ^4.3.2 - ansi-styles: ^4.3.0 - cardinal: ^2.1.1 - chalk: ^4.1.2 - clean-stack: ^3.0.1 - cli-progress: ^3.10.0 - debug: ^4.3.4 - ejs: ^3.1.6 - fs-extra: ^9.1.0 - get-package-type: ^0.1.0 - globby: ^11.1.0 - hyperlinker: ^1.0.0 - indent-string: ^4.0.0 - is-wsl: ^2.2.0 - js-yaml: ^3.14.1 - natural-orderby: ^2.0.3 - object-treeify: ^1.1.33 - password-prompt: ^1.1.2 - semver: ^7.3.7 - string-width: ^4.2.3 - strip-ansi: ^6.0.1 - supports-color: ^8.1.1 - supports-hyperlinks: ^2.2.0 - tslib: ^2.4.1 - widest-line: ^3.1.0 - wrap-ansi: ^7.0.0 - checksum: 1da7f22fff1eb4bba10f17f07a97bad308d317a0b591561be7f1171edff2f40bf84830295965b26cfcb80d3c5df7958df35bbbba4ce030e14a68bbc8e3cedc82 - languageName: node - linkType: hard - -"@oclif/core@npm:^2.8.11, @oclif/core@npm:^2.8.7": - version: 2.9.0 - resolution: "@oclif/core@npm:2.9.0" - dependencies: - "@types/cli-progress": ^3.11.0 + "@types/cli-progress": ^3.11.5 ansi-escapes: ^4.3.2 ansi-styles: ^4.3.0 cardinal: ^2.1.1 chalk: ^4.1.2 clean-stack: ^3.0.1 cli-progress: ^3.12.0 + color: ^4.2.3 debug: ^4.3.4 - ejs: ^3.1.8 - fs-extra: ^9.1.0 + ejs: ^3.1.9 get-package-type: ^0.1.0 globby: ^11.1.0 hyperlinker: ^1.0.0 indent-string: ^4.0.0 is-wsl: ^2.2.0 js-yaml: ^3.14.1 + minimatch: ^9.0.3 natural-orderby: ^2.0.3 object-treeify: ^1.1.33 - password-prompt: ^1.1.2 - semver: ^7.5.3 + password-prompt: ^1.1.3 slice-ansi: ^4.0.0 string-width: ^4.2.3 strip-ansi: ^6.0.1 supports-color: ^8.1.1 supports-hyperlinks: ^2.2.0 - ts-node: ^10.9.1 - tslib: ^2.5.0 widest-line: ^3.1.0 wordwrap: ^1.0.0 wrap-ansi: ^7.0.0 - checksum: 7ec4fe9839e3cd2d84079fb84c6e3de3979698fa8d4e5ada88b1bcad7ba9e6fc942f9345f281de45ac7ca9a751ce2ba926fb6e535fa2b3e77b90b52557bca583 + checksum: 2d226f4b6c1af07b37936fd72df39164638ed271e3347e91f0ce857c98360dd19aed1015308ef759871d2d23821af4c58c25ec42afd5b3c89723c39a54b704fb languageName: node linkType: hard -"@oclif/linewrap@npm:^1.0.0": - version: 1.0.0 - resolution: "@oclif/linewrap@npm:1.0.0" - checksum: a072016a58b5e1331bbc21303ad5100fcda846ac4b181e344aec88bb24c5da09c416651e51313ffcc846a83514b74b8b987dd965982900f3edbb42b4e87cc246 +"@oclif/plugin-autocomplete@npm:^3": + version: 3.0.13 + resolution: "@oclif/plugin-autocomplete@npm:3.0.13" + dependencies: + "@oclif/core": ^3.23.0 + chalk: ^5.3.0 + debug: ^4.3.4 + ejs: ^3.1.9 + checksum: 5dfa59a851edad5adc013d8bd2fc4c5fb1571660300376a14eebea13d36c5d92599da1d7d6bcacc8bc921ba663f711cff23895361f293615932331e297346dfa languageName: node linkType: hard -"@oclif/plugin-help@npm:^5.1.11": - version: 5.2.12 - resolution: "@oclif/plugin-help@npm:5.2.12" +"@oclif/plugin-help@npm:^6, @oclif/plugin-help@npm:^6.0.14": + version: 6.0.18 + resolution: "@oclif/plugin-help@npm:6.0.18" dependencies: - "@oclif/core": ^2.8.11 - checksum: 2790facd047af3c92bedf730ef5aeff9ca6e734691cd2e71e2d199dfabbf0d6381ac36149cca85e081fd293fcb65f6d5304cac163393b604da266b25826767ae + "@oclif/core": ^3.23.0 + checksum: 408034b48a5bb5c500886095f852b9fe48afc98e2978365ea9ba5da6010d3b267edb5273d1898b321cd40edc4f9873238a6fa597a5b690c3a0b2f4a92e07bcc5 languageName: node linkType: hard -"@oclif/plugin-not-found@npm:^2.3.1": - version: 2.3.29 - resolution: "@oclif/plugin-not-found@npm:2.3.29" +"@oclif/plugin-not-found@npm:^3.0.14": + version: 3.0.14 + resolution: "@oclif/plugin-not-found@npm:3.0.14" dependencies: - "@oclif/color": ^1.0.7 - "@oclif/core": ^2.8.7 + "@oclif/core": ^3.21.0 + chalk: ^5.3.0 fast-levenshtein: ^3.0.0 - checksum: 06fc601081ee3e86a728a1b42e9e47951ccd8994fd0bc1673b0b141b4e816c25ab44ddf73bc25dd14a2b96e072da6db170bc09b7483fe7988f9e9fd767d41ff8 + checksum: 25d6306c12eb568ced22917159e5351025fed6337553f9363e9b523a8e428274cd55d32a67cd99ce8019ca9055f7ae057fb87f674c92c9548e267d3bd5f8f55a languageName: node linkType: hard -"@oclif/plugin-warn-if-update-available@npm:^2.0.4": - version: 2.0.42 - resolution: "@oclif/plugin-warn-if-update-available@npm:2.0.42" +"@oclif/plugin-warn-if-update-available@npm:^3.0.12": + version: 3.0.14 + resolution: "@oclif/plugin-warn-if-update-available@npm:3.0.14" dependencies: - "@oclif/core": ^2.8.11 - chalk: ^4.1.0 + "@oclif/core": ^3.23.0 + chalk: ^5.3.0 debug: ^4.1.0 - fs-extra: ^9.0.1 http-call: ^5.2.2 - lodash: ^4.17.21 - semver: ^7.5.4 - checksum: 9c4d740779683901a645d4dbd3b5951b6a5cac7c6ffe42154c8b1a4194703458692b6e1f0c6c0080ed32ecf336f89247af15d3966dcbbd75e3b142dad84f114e - languageName: node - linkType: hard - -"@oclif/screen@npm:^3.0.4": - version: 3.0.5 - resolution: "@oclif/screen@npm:3.0.5" - checksum: b0f40600f81b9d0bd514832a4663c6dc5ec9a89aad93d0bd6edb74e459e104c5b4b63fd6254fd46bbd786a4cc3cd56f8abcb79879c5b57e1261a4559a9fa54dd + lodash.template: ^4.5.0 + checksum: bc03ebbcf6dd2d24205de8c1948791395987dae0855d57262d0eefcf4d835cf2d8c0f99cff0accc29ef0561c4dc1b270bfb4962ddf8a21fe061abe4eb3d8cd53 languageName: node linkType: hard @@ -2427,6 +2391,13 @@ __metadata: languageName: node linkType: hard +"@sindresorhus/is@npm:^4.0.0": + version: 4.6.0 + resolution: "@sindresorhus/is@npm:4.6.0" + checksum: 83839f13da2c29d55c97abc3bc2c55b250d33a0447554997a85c539e058e57b8da092da396e252b11ec24a0279a0bed1f537fa26302209327060643e327f81d2 + languageName: node + linkType: hard + "@sinonjs/commons@npm:^1.7.0": version: 1.8.6 resolution: "@sinonjs/commons@npm:1.8.6" @@ -2445,482 +2416,577 @@ __metadata: languageName: node linkType: hard -"@smithy/abort-controller@npm:^1.0.2": - version: 1.0.2 - resolution: "@smithy/abort-controller@npm:1.0.2" +"@smithy/abort-controller@npm:^2.1.4": + version: 2.1.4 + resolution: "@smithy/abort-controller@npm:2.1.4" dependencies: - "@smithy/types": ^1.1.1 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: 5d0c5b04636c1e27c812b3ac0f780602ff28ed60dbd5b9d39e9caa6f2e982b340efd3fea4d7e7b282451d1469ef6f9d5086e79a0945a078db2db7672dd174f49 + checksum: d2f3352f9facf0e60b206177d4fc1f3996cade4549d0675fe77c4af5c1c4d3bd1d7c5c4b5071536a7cf5bdb6a292d66a08e19be361383727f97fb5a5c077d9a9 languageName: node linkType: hard -"@smithy/config-resolver@npm:^1.0.1, @smithy/config-resolver@npm:^1.0.2": - version: 1.0.2 - resolution: "@smithy/config-resolver@npm:1.0.2" +"@smithy/chunked-blob-reader-native@npm:^2.1.3": + version: 2.1.3 + resolution: "@smithy/chunked-blob-reader-native@npm:2.1.3" dependencies: - "@smithy/types": ^1.1.1 - "@smithy/util-config-provider": ^1.0.2 - "@smithy/util-middleware": ^1.0.2 + "@smithy/util-base64": ^2.2.1 tslib: ^2.5.0 - checksum: 23efcb59d682b7ab05ec920c92d9e7fcecc58b9ab204a4de504da18ef0687c051b27acf9bcfc91969a160ea137d6f2f2091b4f3e31c659327784f95240ec0d13 + checksum: fe8f4f7d29f7555b1570fcf5a6441ca2f6c5dbef80fbe7377332caa8183828fac79cc0111187bf8bf2db77e954f3a50d27d61babbecab64e527e2f1281bb50a0 languageName: node linkType: hard -"@smithy/credential-provider-imds@npm:^1.0.1, @smithy/credential-provider-imds@npm:^1.0.2": - version: 1.0.2 - resolution: "@smithy/credential-provider-imds@npm:1.0.2" +"@smithy/chunked-blob-reader@npm:^2.1.1": + version: 2.1.1 + resolution: "@smithy/chunked-blob-reader@npm:2.1.1" dependencies: - "@smithy/node-config-provider": ^1.0.2 - "@smithy/property-provider": ^1.0.2 - "@smithy/types": ^1.1.1 - "@smithy/url-parser": ^1.0.2 tslib: ^2.5.0 - checksum: 91b57891b68fd1e83b40d8bde72cbc38247982ba6eaaf32a80bdcccb1e30b42799ac7d8b50da55796ae873a95891b567298d5da41e1059150e240d075a82ee03 + checksum: e9d7f6f80fffccb5b615aa4eecf0e48849e625a70a79acc371b74b3d5e6dffed3b0d21d8beafe2e1cc1ebc235b8c24ed7d7e31e8c3565d97efe1238dda82c813 languageName: node linkType: hard -"@smithy/eventstream-codec@npm:^1.0.2": - version: 1.0.2 - resolution: "@smithy/eventstream-codec@npm:1.0.2" +"@smithy/config-resolver@npm:^2.1.5": + version: 2.1.5 + resolution: "@smithy/config-resolver@npm:2.1.5" + dependencies: + "@smithy/node-config-provider": ^2.2.5 + "@smithy/types": ^2.11.0 + "@smithy/util-config-provider": ^2.2.1 + "@smithy/util-middleware": ^2.1.4 + tslib: ^2.5.0 + checksum: fd56ec60a97fc094971593ddbb1ee8b7e0a27f2731a34a6a3d0acdc817313b0b75e76b1668f8322d2e9a296c8530b5f37e2e479bb185ff954eba86984df54493 + languageName: node + linkType: hard + +"@smithy/core@npm:^1.3.8": + version: 1.3.8 + resolution: "@smithy/core@npm:1.3.8" + dependencies: + "@smithy/middleware-endpoint": ^2.4.6 + "@smithy/middleware-retry": ^2.1.7 + "@smithy/middleware-serde": ^2.2.1 + "@smithy/protocol-http": ^3.2.2 + "@smithy/smithy-client": ^2.4.5 + "@smithy/types": ^2.11.0 + "@smithy/util-middleware": ^2.1.4 + tslib: ^2.5.0 + checksum: 7f2056f5933096096701d865bb7dd0fa63ce3e4f4e1cd624b5c77c3ca4a2ec2127964b5511159810be31edbe060aa366198aa09db5a902185eb899a8095ae018 + languageName: node + linkType: hard + +"@smithy/credential-provider-imds@npm:^2.2.6": + version: 2.2.6 + resolution: "@smithy/credential-provider-imds@npm:2.2.6" + dependencies: + "@smithy/node-config-provider": ^2.2.5 + "@smithy/property-provider": ^2.1.4 + "@smithy/types": ^2.11.0 + "@smithy/url-parser": ^2.1.4 + tslib: ^2.5.0 + checksum: 4cf810affb121eccb34b0df97ebd8c6d0ead5a5238c34cead87fb15940c20c40b4fb9d91997a112b91e439c6bad3c6ebfe4bac934a30966b1215735992e18583 + languageName: node + linkType: hard + +"@smithy/eventstream-codec@npm:^2.1.4": + version: 2.1.4 + resolution: "@smithy/eventstream-codec@npm:2.1.4" dependencies: "@aws-crypto/crc32": 3.0.0 - "@smithy/types": ^1.1.1 - "@smithy/util-hex-encoding": ^1.0.2 + "@smithy/types": ^2.11.0 + "@smithy/util-hex-encoding": ^2.1.1 tslib: ^2.5.0 - checksum: 64e2f6e5b03595815a2b968938459db3df31498b2befa657b5acc55242c57da56825431465bac271344cecf68d1f31a54ed3477ebd7d775ad3791d7e48a2bc62 + checksum: 2dff83b78030c7ff5c76001bcb24a6a0e16f15eb6cd953b0fae7d719ed0c1b88b6310cf2179b6763e6112aa1152ad45616908f40921892fe07521435e47edc27 languageName: node linkType: hard -"@smithy/eventstream-serde-browser@npm:^1.0.1": - version: 1.0.2 - resolution: "@smithy/eventstream-serde-browser@npm:1.0.2" +"@smithy/eventstream-serde-browser@npm:^2.1.4": + version: 2.1.4 + resolution: "@smithy/eventstream-serde-browser@npm:2.1.4" dependencies: - "@smithy/eventstream-serde-universal": ^1.0.2 - "@smithy/types": ^1.1.1 + "@smithy/eventstream-serde-universal": ^2.1.4 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: d2ece075bcd5ba64788f74078217504b31cddabbb84e7dd5ed17b358f9f184e5ae840d36460251f06d84da7c8be4d70b87e1386418857466a7d0600145e2012d + checksum: 1356d59cb8632d3d88216c8209c219c979e9359cb2e405e1d44f7dbac8c2b0a4bd93351c7e33c6e276bee9f2dfc90e3ce65bd11d89c7652036300ece3717d105 languageName: node linkType: hard -"@smithy/eventstream-serde-config-resolver@npm:^1.0.1": - version: 1.0.2 - resolution: "@smithy/eventstream-serde-config-resolver@npm:1.0.2" +"@smithy/eventstream-serde-config-resolver@npm:^2.1.4": + version: 2.1.4 + resolution: "@smithy/eventstream-serde-config-resolver@npm:2.1.4" dependencies: - "@smithy/types": ^1.1.1 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: ff6eeec4439eafe8fb4d1ded405b14a67f79b74af18091bd218392f8450f7b9565c419b82291a0032e1da067a28b74551995b18110422169dc86e01e0581d2dc + checksum: 5817cbc71c01bfcc3fa40a8744c6ebd71025b5205cb91b2aa5ede581e0478118e936d1430e9b3b9a13a135725d7c51a5de0df37094be0530408ce72866aefbd8 languageName: node linkType: hard -"@smithy/eventstream-serde-node@npm:^1.0.1": - version: 1.0.2 - resolution: "@smithy/eventstream-serde-node@npm:1.0.2" +"@smithy/eventstream-serde-node@npm:^2.1.4": + version: 2.1.4 + resolution: "@smithy/eventstream-serde-node@npm:2.1.4" dependencies: - "@smithy/eventstream-serde-universal": ^1.0.2 - "@smithy/types": ^1.1.1 + "@smithy/eventstream-serde-universal": ^2.1.4 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: 32b562735eaa59e7000d71887f9f6fc6c9986c595477619eae58830e8d720f4bdb8496d91f939bba6e933dda03ba2dde4fc03c67d090025c4b289c5851d7e8c1 + checksum: 4621c9427a66663c8c0067aa9e625d6d2dd50a8db1dede369f9f8453b531fa466d977a8f068f1c89b374497d28950b05c5faeae0cbbddbd8ca3dcc785aa62295 languageName: node linkType: hard -"@smithy/eventstream-serde-universal@npm:^1.0.2": - version: 1.0.2 - resolution: "@smithy/eventstream-serde-universal@npm:1.0.2" +"@smithy/eventstream-serde-universal@npm:^2.1.4": + version: 2.1.4 + resolution: "@smithy/eventstream-serde-universal@npm:2.1.4" dependencies: - "@smithy/eventstream-codec": ^1.0.2 - "@smithy/types": ^1.1.1 + "@smithy/eventstream-codec": ^2.1.4 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: 24a40513b9384ecadb78618d672cc013d06d43c743e60cf7e397fa4e0ad7ce19e34281ddcf9527a3343409f21659f8a3bab26963cb47fc3557726cd40580973c + checksum: 8955683616a37b6702340ec3ac1e07c9d2414a46bc9243d92fdb385236cefcd0b8b447925d608a3a03647292951c73cc2acfb1355da41f331ee3b542575c58b8 languageName: node linkType: hard -"@smithy/fetch-http-handler@npm:^1.0.1, @smithy/fetch-http-handler@npm:^1.0.2": - version: 1.0.2 - resolution: "@smithy/fetch-http-handler@npm:1.0.2" +"@smithy/fetch-http-handler@npm:^2.4.5": + version: 2.4.5 + resolution: "@smithy/fetch-http-handler@npm:2.4.5" dependencies: - "@smithy/protocol-http": ^1.1.1 - "@smithy/querystring-builder": ^1.0.2 - "@smithy/types": ^1.1.1 - "@smithy/util-base64": ^1.0.2 + "@smithy/protocol-http": ^3.2.2 + "@smithy/querystring-builder": ^2.1.4 + "@smithy/types": ^2.11.0 + "@smithy/util-base64": ^2.2.1 tslib: ^2.5.0 - checksum: 62965f69ebcb7a7a67576d4ac909873080d0da33796f15ecf7b265e7f35e0d43e6d3cdf5edb53b9a51f97a88ee90777dd8a7a84ac8dd914cd3d4bcb1c6611506 + checksum: b0eecebb77df93979e19c69c2441f34b104295308d461a957314cdba4f2baff71ea0df2b6cea33300ff43857e0a62d9114f9a784b7a3052e06464df5828ac613 languageName: node linkType: hard -"@smithy/hash-node@npm:^1.0.1": - version: 1.0.2 - resolution: "@smithy/hash-node@npm:1.0.2" +"@smithy/hash-blob-browser@npm:^2.1.5": + version: 2.1.5 + resolution: "@smithy/hash-blob-browser@npm:2.1.5" dependencies: - "@smithy/types": ^1.1.1 - "@smithy/util-buffer-from": ^1.0.2 - "@smithy/util-utf8": ^1.0.2 + "@smithy/chunked-blob-reader": ^2.1.1 + "@smithy/chunked-blob-reader-native": ^2.1.3 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: 018ef3271c60e7c8df07c4b5f77b52010a8a6be53e9da3f7e361cda48a6df6f5a52870a7721110338725e83b88d5ef120c2312334b6618f3dfdf80d4e0725cab + checksum: 2d0f1d1b63e9c80c4c5b8f2b81f9be496015249886b0489a18c33193251b38e19d44c0ca05ceb2a35480f16de3bd8bb03dea0b0833cdc5a05ce810634a8beec1 languageName: node linkType: hard -"@smithy/invalid-dependency@npm:^1.0.1": - version: 1.0.2 - resolution: "@smithy/invalid-dependency@npm:1.0.2" +"@smithy/hash-node@npm:^2.1.4": + version: 2.1.4 + resolution: "@smithy/hash-node@npm:2.1.4" dependencies: - "@smithy/types": ^1.1.1 + "@smithy/types": ^2.11.0 + "@smithy/util-buffer-from": ^2.1.1 + "@smithy/util-utf8": ^2.2.0 tslib: ^2.5.0 - checksum: 51d4bfc25854789a312d87c9bfe1a919e8d7a96052d4010f411c0cb532673a8a3fff92f2d0cf18ccbd05f618f36bfc7fab61159878559ffdd7096de2bd749916 + checksum: 26336562b038f9dbbd0c26993a233b612245bf98c5af90976dc577418159136df4cded8db1606bf67030db3ed13d4c6502a9a66f59e06bdd6ef4b932f76fa6da languageName: node linkType: hard -"@smithy/is-array-buffer@npm:^1.0.1, @smithy/is-array-buffer@npm:^1.0.2": - version: 1.0.2 - resolution: "@smithy/is-array-buffer@npm:1.0.2" +"@smithy/hash-stream-node@npm:^2.1.4": + version: 2.1.4 + resolution: "@smithy/hash-stream-node@npm:2.1.4" dependencies: + "@smithy/types": ^2.11.0 + "@smithy/util-utf8": ^2.2.0 tslib: ^2.5.0 - checksum: 811b100b809bc1730ed33231ae22afbce5ccc8d2d5db5c8e86b52db718d738283337a43f777397d1308c24243d0be3e3d862684e9be1dbdfb547a8d8399f0911 + checksum: 9518d09128641838ad7e7e463eda4ffacc5e003bf9e87356b8590c78254b861299cba465a2a057e96f049df8f92e36decce3f1f440c9d874618d477849b25fab languageName: node linkType: hard -"@smithy/middleware-content-length@npm:^1.0.1": - version: 1.0.2 - resolution: "@smithy/middleware-content-length@npm:1.0.2" +"@smithy/invalid-dependency@npm:^2.1.4": + version: 2.1.4 + resolution: "@smithy/invalid-dependency@npm:2.1.4" dependencies: - "@smithy/protocol-http": ^1.1.1 - "@smithy/types": ^1.1.1 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: 4b00aa741179152cbdc2aa1229077d0a39196f7ce916a11d121cfa160af380651e031f6a8e59193061bbca0baf5fff5f6010b1a998a6c0b03f228fa862625a8a + checksum: de8c20feb7ae82f992c2edf6da6a77d5768d9c92e0fe983f62cbe1be418e576fceea3ae722b8349772e2654a7f8ac489785df8dcdcf416bec230ddb397c3e462 languageName: node linkType: hard -"@smithy/middleware-endpoint@npm:^1.0.1": - version: 1.0.3 - resolution: "@smithy/middleware-endpoint@npm:1.0.3" +"@smithy/is-array-buffer@npm:^2.1.1": + version: 2.1.1 + resolution: "@smithy/is-array-buffer@npm:2.1.1" dependencies: - "@smithy/middleware-serde": ^1.0.2 - "@smithy/types": ^1.1.1 - "@smithy/url-parser": ^1.0.2 - "@smithy/util-middleware": ^1.0.2 tslib: ^2.5.0 - checksum: 8081b515955632828cdf6955368e46b5288f996fd6697dacf1d44eced488033f8f9d7a10e036fcebabc7f4e72dfcd69ab8ac76b4c17082b9b8326431441ef1a7 + checksum: 5dbf9ed59715c871321d0624e3842340c1d662d2e8b78313d1658d39eb793b3ac5c379d573eba0a2ca3add9b313848d4d93fd04bb8565c75fbab749928b239a6 languageName: node linkType: hard -"@smithy/middleware-retry@npm:^1.0.1, @smithy/middleware-retry@npm:^1.0.2": - version: 1.0.4 - resolution: "@smithy/middleware-retry@npm:1.0.4" +"@smithy/md5-js@npm:^2.1.4": + version: 2.1.4 + resolution: "@smithy/md5-js@npm:2.1.4" dependencies: - "@smithy/protocol-http": ^1.1.1 - "@smithy/service-error-classification": ^1.0.3 - "@smithy/types": ^1.1.1 - "@smithy/util-middleware": ^1.0.2 - "@smithy/util-retry": ^1.0.4 + "@smithy/types": ^2.11.0 + "@smithy/util-utf8": ^2.2.0 tslib: ^2.5.0 - uuid: ^8.3.2 - checksum: 3ca5c4abe3cbfba1201a7777c0f41ae9df0985a1f155bab647cd88d86c8101f4de0bc118164a14d4ac8bd41d120d0c0f1b327b3512c341aeb06f60b0a32dc89d + checksum: 9b6af639952f17f3c685800fee022994de503888631eee0c1edf42dad38a361ec94e9e96d976c42da9d14e116216c135aa71866c5c4555b982200499bfb65104 languageName: node linkType: hard -"@smithy/middleware-serde@npm:^1.0.1, @smithy/middleware-serde@npm:^1.0.2": - version: 1.0.2 - resolution: "@smithy/middleware-serde@npm:1.0.2" +"@smithy/middleware-content-length@npm:^2.1.4": + version: 2.1.4 + resolution: "@smithy/middleware-content-length@npm:2.1.4" dependencies: - "@smithy/types": ^1.1.1 + "@smithy/protocol-http": ^3.2.2 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: 563045c0ad6fd37548197a3844716e61bf969f4a7b3fbb6c6f0129d4745a0c373029acf069d142a59f1d22778e90f86869cd4ef3f9b297b04a23ef042c6c9c55 + checksum: 06b84447bc4984ce737281fc1fde6a56c4e6e31846982bd03d889d09614c50307b7345c478a1a8cb11c13faa9eb868c38a36b0c8b204c5795b6259b1aefcb3af languageName: node linkType: hard -"@smithy/middleware-stack@npm:^1.0.1, @smithy/middleware-stack@npm:^1.0.2": - version: 1.0.2 - resolution: "@smithy/middleware-stack@npm:1.0.2" +"@smithy/middleware-endpoint@npm:^2.4.6": + version: 2.4.6 + resolution: "@smithy/middleware-endpoint@npm:2.4.6" dependencies: + "@smithy/middleware-serde": ^2.2.1 + "@smithy/node-config-provider": ^2.2.5 + "@smithy/shared-ini-file-loader": ^2.3.5 + "@smithy/types": ^2.11.0 + "@smithy/url-parser": ^2.1.4 + "@smithy/util-middleware": ^2.1.4 tslib: ^2.5.0 - checksum: 34794d1e6d8b5fd9be70d5d0137f09d8ec88942d054575e35dbf6407f2040c3d0d667d26ff01132c4c42933785127d12b6406a1802af65a779e44cbf38fc9fe2 + checksum: e4e144b8f27ad25c342138872f32d7a97887433a99f2c3a925479504695247f09aa3afef131e27aec7bf8f6fd21e9720ced56b32c916ab535a514c6043b8d837 languageName: node linkType: hard -"@smithy/node-config-provider@npm:^1.0.1, @smithy/node-config-provider@npm:^1.0.2": - version: 1.0.2 - resolution: "@smithy/node-config-provider@npm:1.0.2" +"@smithy/middleware-retry@npm:^2.1.7": + version: 2.1.7 + resolution: "@smithy/middleware-retry@npm:2.1.7" dependencies: - "@smithy/property-provider": ^1.0.2 - "@smithy/shared-ini-file-loader": ^1.0.2 - "@smithy/types": ^1.1.1 + "@smithy/node-config-provider": ^2.2.5 + "@smithy/protocol-http": ^3.2.2 + "@smithy/service-error-classification": ^2.1.4 + "@smithy/smithy-client": ^2.4.5 + "@smithy/types": ^2.11.0 + "@smithy/util-middleware": ^2.1.4 + "@smithy/util-retry": ^2.1.4 tslib: ^2.5.0 - checksum: 593bd5adf0177851a191849e68760f7ebde943db2613898ecda468b31c47442e5fd380fdd95fe95f912bd15fe48a28dbde3f352b49a8108fc34c630d7eb50843 + uuid: ^8.3.2 + checksum: 4d43cfee29aab4e755abc13911f4249dab3e524ce71852753138653790e710326aa85a197ad9cede3f68425d584d45b1796ceb467f9455c072a36f9a5524a6b7 languageName: node linkType: hard -"@smithy/node-http-handler@npm:^1.0.1, @smithy/node-http-handler@npm:^1.0.2, @smithy/node-http-handler@npm:^1.0.3": - version: 1.0.3 - resolution: "@smithy/node-http-handler@npm:1.0.3" +"@smithy/middleware-serde@npm:^2.2.1": + version: 2.2.1 + resolution: "@smithy/middleware-serde@npm:2.2.1" dependencies: - "@smithy/abort-controller": ^1.0.2 - "@smithy/protocol-http": ^1.1.1 - "@smithy/querystring-builder": ^1.0.2 - "@smithy/types": ^1.1.1 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: 727e1391ccc409b3ed7d7a697bfcd29e4e9fbc81404665719c47c8143832ef8f65ea9f8f5d783ea1930fd56a0d45eaaa6a7a8db76da785ba73f0fd29276fbe11 + checksum: af994fbc1b9bb5bfd48530948764bd1c6112aa945cb539b66b145c5e645e065ae340dc943ca8f25a4317c5c8434fc85823bb3276d5e82f25cae21c23ebbb29a2 languageName: node linkType: hard -"@smithy/property-provider@npm:^1.0.1, @smithy/property-provider@npm:^1.0.2": - version: 1.0.2 - resolution: "@smithy/property-provider@npm:1.0.2" +"@smithy/middleware-stack@npm:^2.1.4": + version: 2.1.4 + resolution: "@smithy/middleware-stack@npm:2.1.4" dependencies: - "@smithy/types": ^1.1.1 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: 55d09de3dab2e5858b45f981c67ec1cf4e8fc28a758b9830fd0c5e04ca6e9d69f31e92c80fa4fba5d8eed4a60b4f95528d41f9a6c63e2ff0aad726d3c3b83636 + checksum: 71cc9c5d7ca40c00a10d3337d5dd6cb4263a45f7ba97d4fab415ced4342835561c17da9fc44f06dd7b34ee167abe8ca83a025df90f99705c29e70449130000c9 languageName: node linkType: hard -"@smithy/protocol-http@npm:^1.0.1, @smithy/protocol-http@npm:^1.1.0, @smithy/protocol-http@npm:^1.1.1": - version: 1.1.1 - resolution: "@smithy/protocol-http@npm:1.1.1" +"@smithy/node-config-provider@npm:^2.2.5": + version: 2.2.5 + resolution: "@smithy/node-config-provider@npm:2.2.5" dependencies: - "@smithy/types": ^1.1.1 + "@smithy/property-provider": ^2.1.4 + "@smithy/shared-ini-file-loader": ^2.3.5 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: 6320e8b010d05a123efef19401b3e2fc0d03efa99082ad0d5fd41a3209a05332acb4b5ee21dcfd4764b6576019884602bd09ede0f7508540baf7ddb1f7eb49f5 + checksum: 935955edb3f3a04aa7c55862fa531668398f2a797b20d86268d5a599bfc295588150e05e8903b462ba1c126eb0778ba2aa5e87e9785d052f6a08d68a8fbc4e3c languageName: node linkType: hard -"@smithy/querystring-builder@npm:^1.0.2": - version: 1.0.2 - resolution: "@smithy/querystring-builder@npm:1.0.2" +"@smithy/node-http-handler@npm:^2.4.3": + version: 2.4.3 + resolution: "@smithy/node-http-handler@npm:2.4.3" dependencies: - "@smithy/types": ^1.1.1 - "@smithy/util-uri-escape": ^1.0.2 + "@smithy/abort-controller": ^2.1.4 + "@smithy/protocol-http": ^3.2.2 + "@smithy/querystring-builder": ^2.1.4 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: c0e6807a5b6c8438295ff8ebc11d9e2a28fe1434405688055a9dd4f4d354e49e14a4e459419af23f74aab0a281d58b70d29ae6777a42504a89d6f089b110ee52 + checksum: 07e30c23fe696c9dc6060f826821810322a15adfd0e850ca4036eca9d8055bae222652bec9452c01247cb6e32522abd88a5909cba76cd287b9340c281cf27e58 languageName: node linkType: hard -"@smithy/querystring-parser@npm:^1.0.2": - version: 1.0.2 - resolution: "@smithy/querystring-parser@npm:1.0.2" +"@smithy/property-provider@npm:^2.1.4": + version: 2.1.4 + resolution: "@smithy/property-provider@npm:2.1.4" dependencies: - "@smithy/types": ^1.1.1 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: 348672b1bc4193de23055421756c47619de5a2dea496dcf85a7744e9a8d5b26a4573dd731f9be936f7b1ba564676ecdf6d166638f9961bff497a2c554c97f01c + checksum: da228c4da5433b8bd682f2c1b86193bb1e2777c7cafc658cfdf0e5f07c7148e79204878887abe421387d3e8daced74bb8dbf36a9558d0bf7d2cc56c7407cbd9b languageName: node linkType: hard -"@smithy/service-error-classification@npm:^1.0.3": - version: 1.0.3 - resolution: "@smithy/service-error-classification@npm:1.0.3" - checksum: adf840de7865606946a68f55ae4f35e03d96422be4df886309300944243510baf1bd84ef0786bcd8184094e97fafdff66a52b8ba669267391a8d8856093edde0 +"@smithy/protocol-http@npm:^3.2.2": + version: 3.2.2 + resolution: "@smithy/protocol-http@npm:3.2.2" + dependencies: + "@smithy/types": ^2.11.0 + tslib: ^2.5.0 + checksum: 8c5a6ac4d0611b955ef86c837ebaad5d8f988b78af9265656983f80fd20eb0968fb9f734e751bd6db30f6e297176c35a84e3818a7064b6de5e40e303b3f51ccd languageName: node linkType: hard -"@smithy/shared-ini-file-loader@npm:^1.0.1, @smithy/shared-ini-file-loader@npm:^1.0.2": - version: 1.0.2 - resolution: "@smithy/shared-ini-file-loader@npm:1.0.2" +"@smithy/querystring-builder@npm:^2.1.4": + version: 2.1.4 + resolution: "@smithy/querystring-builder@npm:2.1.4" dependencies: - "@smithy/types": ^1.1.1 + "@smithy/types": ^2.11.0 + "@smithy/util-uri-escape": ^2.1.1 tslib: ^2.5.0 - checksum: c9ba908a48c12a06bcbb872e2e0581805507efc9beffcdbad39baa09b22da63bbcbf538a95d099666869e080ad5556bfe2fab6d4e977a71163595f3f9c1d7edc + checksum: 58e7dd59efc59bcb88a76f3116301cd818730e5c8dea0d3adba76f0b0e2730e67e594cd882b9adb3b6c06c00980349c4dbbe578dadd6f4d96629f95493d9ac43 languageName: node linkType: hard -"@smithy/signature-v4@npm:^1.0.1": - version: 1.0.2 - resolution: "@smithy/signature-v4@npm:1.0.2" - dependencies: - "@smithy/eventstream-codec": ^1.0.2 - "@smithy/is-array-buffer": ^1.0.2 - "@smithy/types": ^1.1.1 - "@smithy/util-hex-encoding": ^1.0.2 - "@smithy/util-middleware": ^1.0.2 - "@smithy/util-uri-escape": ^1.0.2 - "@smithy/util-utf8": ^1.0.2 +"@smithy/querystring-parser@npm:^2.1.4": + version: 2.1.4 + resolution: "@smithy/querystring-parser@npm:2.1.4" + dependencies: + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: 3e3072ef956adbb9fe633f2e7c28fc9aaeddb7551c25a1af94214fd5e93617c2b0ede440c1cb61ee6268c502ce0418cf124fb21cb654605292a956ec3061d54a + checksum: 44eb148ae086a0b43f429c0478261f56132622a08ded6a5d1a685d3c80a282e78a4d38b6a4d00d8609a8e8ed81c3c7959b0e8eaf295af096df582c837d24ac2f languageName: node linkType: hard -"@smithy/smithy-client@npm:^1.0.2, @smithy/smithy-client@npm:^1.0.3": - version: 1.0.4 - resolution: "@smithy/smithy-client@npm:1.0.4" +"@smithy/service-error-classification@npm:^2.1.4": + version: 2.1.4 + resolution: "@smithy/service-error-classification@npm:2.1.4" dependencies: - "@smithy/middleware-stack": ^1.0.2 - "@smithy/types": ^1.1.1 - "@smithy/util-stream": ^1.0.2 + "@smithy/types": ^2.11.0 + checksum: f36c21b259cc07cce310451bd2ef061084471d0a21899e27e28c119f9fba7faf473860ec6017de40e3a98f8b8005147186fd464fe63f0356a2febe62198f60c6 + languageName: node + linkType: hard + +"@smithy/shared-ini-file-loader@npm:^2.3.5": + version: 2.3.5 + resolution: "@smithy/shared-ini-file-loader@npm:2.3.5" + dependencies: + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: 468aa2f28b6addb82861a543a2c1639dcfd40e49d3344237bd56c2d061af5e2bc88972297a2b86de7bf31d7ee49589a4e5a577518ef747e2c7458ae20f7c3322 + checksum: f8079b9b11fcd076e90b282f6702e683e03c8c20e81cd90c195d984a2944223be6ed6af094117982c77be18449e37c5bef79cfed49f049d3fec2c9e51b32de08 languageName: node linkType: hard -"@smithy/types@npm:1.1.0": - version: 1.1.0 - resolution: "@smithy/types@npm:1.1.0" +"@smithy/signature-v4@npm:^2.1.4": + version: 2.1.4 + resolution: "@smithy/signature-v4@npm:2.1.4" dependencies: + "@smithy/eventstream-codec": ^2.1.4 + "@smithy/is-array-buffer": ^2.1.1 + "@smithy/types": ^2.11.0 + "@smithy/util-hex-encoding": ^2.1.1 + "@smithy/util-middleware": ^2.1.4 + "@smithy/util-uri-escape": ^2.1.1 + "@smithy/util-utf8": ^2.2.0 tslib: ^2.5.0 - checksum: 8c0589fa973e5c71cf776c28c43aba04ee07139578fd0174aac0d74c3688e3ffa7075cecd65b223b2a155ad711808b1e4ad58a084ba9f24fcb49679272018387 + checksum: 1e3084b9cb29eb320e6c32b891fed6b1cdbf8bf06efa886fa73a8dcea3e1793f4bcb5ae33ba2ae3b7f43934f98455b3e4ce695f73261d67b11f628dc74068f4a languageName: node linkType: hard -"@smithy/types@npm:^1.1.0, @smithy/types@npm:^1.1.1": - version: 1.1.1 - resolution: "@smithy/types@npm:1.1.1" +"@smithy/smithy-client@npm:^2.4.5": + version: 2.4.5 + resolution: "@smithy/smithy-client@npm:2.4.5" dependencies: + "@smithy/middleware-endpoint": ^2.4.6 + "@smithy/middleware-stack": ^2.1.4 + "@smithy/protocol-http": ^3.2.2 + "@smithy/types": ^2.11.0 + "@smithy/util-stream": ^2.1.5 tslib: ^2.5.0 - checksum: bf4b632eb7d668d8b99e99facf514d506868121e24c0adfaaa52f7da4056644fda5cb4324355f1dba16fc43a4c9af9ef7853db2a4895c3fca11ac98cf6d12234 + checksum: 20529fa2b71d40aea71dbbb9ebd1c344b7541813628869c9c1bba4009cb0efbe93a986b1823b81747c72b5cfd612d9a821acaff35dca787838670ef3753cd452 languageName: node linkType: hard -"@smithy/url-parser@npm:^1.0.1, @smithy/url-parser@npm:^1.0.2": - version: 1.0.2 - resolution: "@smithy/url-parser@npm:1.0.2" +"@smithy/types@npm:^2.11.0": + version: 2.11.0 + resolution: "@smithy/types@npm:2.11.0" dependencies: - "@smithy/querystring-parser": ^1.0.2 - "@smithy/types": ^1.1.1 tslib: ^2.5.0 - checksum: 1844b23a30afb689bc9ec21238d9e6cc428e152201f8f30f252f6211ee8b74760d6568e42125b75bc4d110b15476eac22c204c7e36f6970d04e8afa5bc83ec1d + checksum: 37a5fcf1bccaa1ad4c51696e1d65a4b439787631633deacaa610a492cc29454b97f3957f729c0101a35f89fd316d07867b7d81434b97ea96bc0d7b3a21439170 languageName: node linkType: hard -"@smithy/util-base64@npm:^1.0.1, @smithy/util-base64@npm:^1.0.2": - version: 1.0.2 - resolution: "@smithy/util-base64@npm:1.0.2" +"@smithy/url-parser@npm:^2.1.4": + version: 2.1.4 + resolution: "@smithy/url-parser@npm:2.1.4" dependencies: - "@smithy/util-buffer-from": ^1.0.2 + "@smithy/querystring-parser": ^2.1.4 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: 618d2952fbbc2cabcc6234c9aad612417a2a6f2fcac556a81b75f59d651e5daea7b2c1b44894b30611a425f32045a2dbe0623ebf57654e2068486d0d5a4b6ac7 + checksum: 70961500fceff301eb73332de5b52176420606c72efe247255c0a601c9e1027ecf26e679073486659e2d20e4b344b72da660defec3de05f884321347272efb2e languageName: node linkType: hard -"@smithy/util-body-length-browser@npm:^1.0.1": - version: 1.0.2 - resolution: "@smithy/util-body-length-browser@npm:1.0.2" +"@smithy/util-base64@npm:^2.2.1": + version: 2.2.1 + resolution: "@smithy/util-base64@npm:2.2.1" dependencies: + "@smithy/util-buffer-from": ^2.1.1 + "@smithy/util-utf8": ^2.2.0 tslib: ^2.5.0 - checksum: 3b0eacc3761625aaf5c384da8487a38663325385826ca9ac0fee17b7dff879a2cb3564a03d146e0b66ba6c503e1a07f159a9cccd4d7711b7063516acbfadb496 + checksum: 0b2c08ad596fc6db8a7ba3a704de0d2454ced64d8ca37df3d136f5301a468dd479abac41766aec18f8038441b387048e9b11315ce4d2301a0e30f3bc3cf81e8b languageName: node linkType: hard -"@smithy/util-body-length-node@npm:^1.0.1": - version: 1.0.2 - resolution: "@smithy/util-body-length-node@npm:1.0.2" +"@smithy/util-body-length-browser@npm:^2.1.1": + version: 2.1.1 + resolution: "@smithy/util-body-length-browser@npm:2.1.1" dependencies: tslib: ^2.5.0 - checksum: 472371dc0a44a72333111758b8e60428cdca088cfe8a87c98413c81c4083e8988ae9d27f20fa2b0a8aed7fc26c0fec8e13c271494772c619f65f1a9f4e665eb3 + checksum: 6f7808a41b57a5ab1334f0d036ecec6809a959bcfe6a200f985f35e0c96e72f34fdcb6154873f795835d1d927098055e2dec31ebfb5e5382d1c4c612c80a37c0 languageName: node linkType: hard -"@smithy/util-buffer-from@npm:^1.0.2": - version: 1.0.2 - resolution: "@smithy/util-buffer-from@npm:1.0.2" +"@smithy/util-body-length-node@npm:^2.2.2": + version: 2.2.2 + resolution: "@smithy/util-body-length-node@npm:2.2.2" dependencies: - "@smithy/is-array-buffer": ^1.0.2 tslib: ^2.5.0 - checksum: ca4308ebc54f372777fc53b2782c752ebfdfe3934b1c4da935c78bb2f4f921d2071056edc644704ba894d363f85cc52fc07095d93eb6cbba510ba19a767be265 + checksum: 053939a483b18cc8ba6875ab330e56ff517f9690c4567160b6426289d3953c1de9c0e5d1a11349c041654cb4fc975930be80d8eedda1a5a66b858448e5761a1e languageName: node linkType: hard -"@smithy/util-config-provider@npm:^1.0.1, @smithy/util-config-provider@npm:^1.0.2": - version: 1.0.2 - resolution: "@smithy/util-config-provider@npm:1.0.2" +"@smithy/util-buffer-from@npm:^2.1.1": + version: 2.1.1 + resolution: "@smithy/util-buffer-from@npm:2.1.1" dependencies: + "@smithy/is-array-buffer": ^2.1.1 tslib: ^2.5.0 - checksum: 625c100b8af62cb08c167ebd23f77250e62b012e085ec8db8f06e3539fc516c340e14b480a09012192595121a58276dfc4370529237a58393185f3782ed0244a + checksum: 8dc7f9afaa356696f14a80cd983a750cbad8eba7c46498ed74fb8ec0cb307f14df64fb10ceb30b2d4792395bb8b216c89155a93dee0f2b3e5cab94fef459a195 languageName: node linkType: hard -"@smithy/util-defaults-mode-browser@npm:^1.0.1": - version: 1.0.2 - resolution: "@smithy/util-defaults-mode-browser@npm:1.0.2" +"@smithy/util-config-provider@npm:^2.2.1": + version: 2.2.1 + resolution: "@smithy/util-config-provider@npm:2.2.1" + dependencies: + tslib: ^2.5.0 + checksum: f5b34bcf6ef944779f20d7639070e87a521e1a5620e5a91f2d2dbd764824985930a68b71b0b2bde12e1eaac947155789b73a8c09c1aa7ab923f08e42a4173ef4 + languageName: node + linkType: hard + +"@smithy/util-defaults-mode-browser@npm:^2.1.7": + version: 2.1.7 + resolution: "@smithy/util-defaults-mode-browser@npm:2.1.7" dependencies: - "@smithy/property-provider": ^1.0.2 - "@smithy/types": ^1.1.1 + "@smithy/property-provider": ^2.1.4 + "@smithy/smithy-client": ^2.4.5 + "@smithy/types": ^2.11.0 bowser: ^2.11.0 tslib: ^2.5.0 - checksum: ca03c9f596f9a26d392c289de7af7c7e7bdb12648b0339074bcbaddd762e58cb0cf127b8ed24e269bff004465702986b90d5151c502b418a615449171432024b + checksum: 7abe9acc8297ef59b69f32da43e3f4bdd36cf061cfaa8d06b374bdcf95185b57f1d607f95100d6ff42b47a7add005cb38e75a31339e0dff0af0302956527c1a6 languageName: node linkType: hard -"@smithy/util-defaults-mode-node@npm:^1.0.1": - version: 1.0.2 - resolution: "@smithy/util-defaults-mode-node@npm:1.0.2" +"@smithy/util-defaults-mode-node@npm:^2.2.7": + version: 2.2.7 + resolution: "@smithy/util-defaults-mode-node@npm:2.2.7" dependencies: - "@smithy/config-resolver": ^1.0.2 - "@smithy/credential-provider-imds": ^1.0.2 - "@smithy/node-config-provider": ^1.0.2 - "@smithy/property-provider": ^1.0.2 - "@smithy/types": ^1.1.1 + "@smithy/config-resolver": ^2.1.5 + "@smithy/credential-provider-imds": ^2.2.6 + "@smithy/node-config-provider": ^2.2.5 + "@smithy/property-provider": ^2.1.4 + "@smithy/smithy-client": ^2.4.5 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: 805977758a5cabe3b8a4ee69f29cf6861356096239a60269eac6b83a4d11eddba030b0a5bcdb64add3d1301f611b21ed7d773e354cac8ff08b9d85ba47960252 + checksum: bede7891754673e0e42dbd7bf27c09e3bed9f081367957fd11172d34fb16beb2ed1dc9e7b79bac7a10595452710660080ff0e91f21bdea2df53e008b83bb1a57 languageName: node linkType: hard -"@smithy/util-hex-encoding@npm:^1.0.2": - version: 1.0.2 - resolution: "@smithy/util-hex-encoding@npm:1.0.2" +"@smithy/util-endpoints@npm:^1.1.5": + version: 1.1.5 + resolution: "@smithy/util-endpoints@npm:1.1.5" dependencies: + "@smithy/node-config-provider": ^2.2.5 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: c70bfccb41ac702b514a2bc3d6f897a616efa5aba880a6c7a7501ea874bea3c2213868cb2c494c19f6a5190f3f9e4f7d73d9ab87addbd243435e287dc892dc30 + checksum: a4136c7b3822589c18ef1c4c7ebaca060e7bfc1e09441126e14b56b4409658380e0c99bc1cc2fd907caf46386dc6526f40b412f978b7353efbbf3b906461e7b7 languageName: node linkType: hard -"@smithy/util-middleware@npm:^1.0.1, @smithy/util-middleware@npm:^1.0.2": - version: 1.0.2 - resolution: "@smithy/util-middleware@npm:1.0.2" +"@smithy/util-hex-encoding@npm:^2.1.1": + version: 2.1.1 + resolution: "@smithy/util-hex-encoding@npm:2.1.1" dependencies: tslib: ^2.5.0 - checksum: 899aca62efab92ac1b55e801b2bb1a3e5eb1b74f52387abe40f902ec2e5f3afd36e2942f392ff1a562e69dd0de901b9aa20c55e4af2ff0e37e20c14b20940852 + checksum: eae5c94fd4d57dccbae5ad4d7684787b1e9b1df944cf9fcb497cbefaed6aec49c0a777cc1ea4d10fa7002b82f0b73b8830ae2efe98ed35a62dcf3c4f7d08a4cd languageName: node linkType: hard -"@smithy/util-retry@npm:^1.0.1, @smithy/util-retry@npm:^1.0.2, @smithy/util-retry@npm:^1.0.4": - version: 1.0.4 - resolution: "@smithy/util-retry@npm:1.0.4" +"@smithy/util-middleware@npm:^2.1.4": + version: 2.1.4 + resolution: "@smithy/util-middleware@npm:2.1.4" dependencies: - "@smithy/service-error-classification": ^1.0.3 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: b9a7e464d67b141a175f126b2a0fc5c91de387eb483b432db4769cee43bbbb546e4142711f293c3a04c82b6d56b676b7a2f7f7150e2c736a10d8e5df1ed63c04 + checksum: 5eb69236cde6e871ef9d15b64a6b7fdab0c506240d25bec8f131484d0b5ea38fb51c1b435b9ddedb23afff303c7aa7830dcc7d1c82b718682b136538d605cec3 languageName: node linkType: hard -"@smithy/util-stream@npm:^1.0.1, @smithy/util-stream@npm:^1.0.2": - version: 1.0.2 - resolution: "@smithy/util-stream@npm:1.0.2" - dependencies: - "@smithy/fetch-http-handler": ^1.0.2 - "@smithy/node-http-handler": ^1.0.3 - "@smithy/types": ^1.1.1 - "@smithy/util-base64": ^1.0.2 - "@smithy/util-buffer-from": ^1.0.2 - "@smithy/util-hex-encoding": ^1.0.2 - "@smithy/util-utf8": ^1.0.2 +"@smithy/util-retry@npm:^2.1.4": + version: 2.1.4 + resolution: "@smithy/util-retry@npm:2.1.4" + dependencies: + "@smithy/service-error-classification": ^2.1.4 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: ebea6886766da812434d4ca39ee201302096451441d577eb5efeb44ce3437f3828df435676a5e453f8eb535e19224bc3d21c2d3e6632a5eef68d932a37343476 + checksum: e6cccc8ea29098610af703bcfad13a6abc237dfa8dae615189a6d8e92aa997e3dfed4ad162cd96e821de4d6b592f93fe41b9aec8867bb768a09217cea33f808c languageName: node linkType: hard -"@smithy/util-uri-escape@npm:^1.0.2": - version: 1.0.2 - resolution: "@smithy/util-uri-escape@npm:1.0.2" +"@smithy/util-stream@npm:^2.1.5": + version: 2.1.5 + resolution: "@smithy/util-stream@npm:2.1.5" + dependencies: + "@smithy/fetch-http-handler": ^2.4.5 + "@smithy/node-http-handler": ^2.4.3 + "@smithy/types": ^2.11.0 + "@smithy/util-base64": ^2.2.1 + "@smithy/util-buffer-from": ^2.1.1 + "@smithy/util-hex-encoding": ^2.1.1 + "@smithy/util-utf8": ^2.2.0 + tslib: ^2.5.0 + checksum: 1589f464d54d0b159eff5a5cc37a1843e65149efd9d94f9c308019c5a5d201d2243511ffac68572fd835c50064e8de0c7dd01537f159814a3e6068949684c83b + languageName: node + linkType: hard + +"@smithy/util-uri-escape@npm:^2.1.1": + version: 2.1.1 + resolution: "@smithy/util-uri-escape@npm:2.1.1" dependencies: tslib: ^2.5.0 - checksum: 6df9fb3aed8fc386c1b7ccb2b52268c2e67f3620a85fa42d35f964ae2c492b6395841a751a0ab4068825c7fd54a84933014571d6fbc12e9e1a711d0be3f2c747 + checksum: 822ed7390e28d5c7b8dab5e5c5a8de998e0778220137962a71b47b2d8900289d48a3a2c9945e68e1cac921d43f61660045e7fdffe8df9e63004575fcf2aa99b2 languageName: node linkType: hard -"@smithy/util-utf8@npm:^1.0.1, @smithy/util-utf8@npm:^1.0.2": - version: 1.0.2 - resolution: "@smithy/util-utf8@npm:1.0.2" +"@smithy/util-utf8@npm:^2.2.0": + version: 2.2.0 + resolution: "@smithy/util-utf8@npm:2.2.0" dependencies: - "@smithy/util-buffer-from": ^1.0.2 + "@smithy/util-buffer-from": ^2.1.1 tslib: ^2.5.0 - checksum: 64add10ac1bbeb0c96a1ba8b05886ae86cee589fd4cccb25276849748fed7035c54e64d40107f22a57ca9b4f9324afe4baf0007c67536d520c1b8378e1e6ec55 + checksum: f86c4cf0b9462f6c1d75d38f57ea9427e7e95cc4c7740c0b6b464a94d79cb47a7c6f729eae212dd28051133ccd7e99f679fa8c267fa1772f7834e9805ebbab69 languageName: node linkType: hard -"@smithy/util-waiter@npm:^1.0.1": - version: 1.0.2 - resolution: "@smithy/util-waiter@npm:1.0.2" +"@smithy/util-waiter@npm:^2.1.4": + version: 2.1.4 + resolution: "@smithy/util-waiter@npm:2.1.4" dependencies: - "@smithy/abort-controller": ^1.0.2 - "@smithy/types": ^1.1.1 + "@smithy/abort-controller": ^2.1.4 + "@smithy/types": ^2.11.0 tslib: ^2.5.0 - checksum: 07b5284b2d10c4ddcfd61ce7bc2585f3ba401cf42dffa799317eb1895e9b061c54efd328e204c8e1881888018cd198889bccc86c6a707485fdec3738ed5b4aeb + checksum: c3dc3746f42c3032f0d94fd941e31671b830fa26bc13665a4288209e2d949bb1d27b8762dd0783f6bcc20c8a970bde2ab233fab201950848918727144178288f + languageName: node + linkType: hard + +"@szmarczak/http-timer@npm:^4.0.5": + version: 4.0.6 + resolution: "@szmarczak/http-timer@npm:4.0.6" + dependencies: + defer-to-connect: ^2.0.0 + checksum: c29df3bcec6fc3bdec2b17981d89d9c9fc9bd7d0c9bcfe92821dc533f4440bc890ccde79971838b4ceed1921d456973c4180d7175ee1d0023ad0562240a58d95 languageName: node linkType: hard @@ -3033,6 +3099,18 @@ __metadata: languageName: node linkType: hard +"@types/cacheable-request@npm:^6.0.1": + version: 6.0.3 + resolution: "@types/cacheable-request@npm:6.0.3" + dependencies: + "@types/http-cache-semantics": "*" + "@types/keyv": ^3.1.4 + "@types/node": "*" + "@types/responselike": ^1.0.0 + checksum: d9b26403fe65ce6b0cb3720b7030104c352bcb37e4fac2a7089a25a97de59c355fa08940658751f2f347a8512aa9d18fdb66ab3ade835975b2f454f2d5befbd9 + languageName: node + linkType: hard + "@types/chrome@npm:^0.0.228": version: 0.0.228 resolution: "@types/chrome@npm:0.0.228" @@ -3043,12 +3121,12 @@ __metadata: languageName: node linkType: hard -"@types/cli-progress@npm:^3.11.0": - version: 3.11.0 - resolution: "@types/cli-progress@npm:3.11.0" +"@types/cli-progress@npm:^3.11.5": + version: 3.11.5 + resolution: "@types/cli-progress@npm:3.11.5" dependencies: "@types/node": "*" - checksum: d4401622333e888925b47c5d5bb0b89dddae17cc020f909a64ad7275b326bf3c6e9cd467f625a197fd958a1e49220d32f4a2b0bf2948fee330c719a9b985674e + checksum: 571fb3b11646415ac49c90e8003b82f3ac58d75fde5952caf40b4a079517b6e25e79ab0a7455d0ab0398d0b2de062646dba075d3d1f8d147eed2ab4d41abbf64 languageName: node linkType: hard @@ -3160,6 +3238,13 @@ __metadata: languageName: node linkType: hard +"@types/http-cache-semantics@npm:*": + version: 4.0.4 + resolution: "@types/http-cache-semantics@npm:4.0.4" + checksum: 7f4dd832e618bc1e271be49717d7b4066d77c2d4eed5b81198eb987e532bb3e1c7e02f45d77918185bad936f884b700c10cebe06305f50400f382ab75055f9e8 + languageName: node + linkType: hard + "@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": version: 2.0.4 resolution: "@types/istanbul-lib-coverage@npm:2.0.4" @@ -3216,6 +3301,15 @@ __metadata: languageName: node linkType: hard +"@types/keyv@npm:^3.1.4": + version: 3.1.4 + resolution: "@types/keyv@npm:3.1.4" + dependencies: + "@types/node": "*" + checksum: e009a2bfb50e90ca9b7c6e8f648f8464067271fd99116f881073fa6fa76dc8d0133181dd65e6614d5fb1220d671d67b0124aef7d97dc02d7e342ab143a47779d + languageName: node + linkType: hard + "@types/lodash@npm:^4.14.177": version: 4.14.195 resolution: "@types/lodash@npm:4.14.195" @@ -3295,6 +3389,15 @@ __metadata: languageName: node linkType: hard +"@types/responselike@npm:^1.0.0": + version: 1.0.3 + resolution: "@types/responselike@npm:1.0.3" + dependencies: + "@types/node": "*" + checksum: 6ac4b35723429b11b117e813c7acc42c3af8b5554caaf1fc750404c1ae59f9b7376bc69b9e9e194a5a97357a597c2228b7173d317320f0360d617b6425212f58 + languageName: node + linkType: hard + "@types/semver@npm:^7.3.12": version: 7.5.0 resolution: "@types/semver@npm:7.5.0" @@ -3798,13 +3901,6 @@ __metadata: languageName: node linkType: hard -"ansi-escapes@npm:^3.1.0": - version: 3.2.0 - resolution: "ansi-escapes@npm:3.2.0" - checksum: 0f94695b677ea742f7f1eed961f7fd8d05670f744c6ad1f8f635362f6681dcfbc1575cb05b43abc7bb6d67e25a75fb8c7ea8f2a57330eb2c76b33f18cb2cef0a - languageName: node - linkType: hard - "ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.0, ansi-escapes@npm:^4.3.2": version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" @@ -3814,20 +3910,6 @@ __metadata: languageName: node linkType: hard -"ansi-regex@npm:^2.0.0": - version: 2.1.1 - resolution: "ansi-regex@npm:2.1.1" - checksum: 190abd03e4ff86794f338a31795d262c1dfe8c91f7e01d04f13f646f1dcb16c5800818f886047876f1272f065570ab86b24b99089f8b68a0e11ff19aed4ca8f1 - languageName: node - linkType: hard - -"ansi-regex@npm:^3.0.0": - version: 3.0.1 - resolution: "ansi-regex@npm:3.0.1" - checksum: 09daf180c5f59af9850c7ac1bd7fda85ba596cc8cbeb210826e90755f06c818af86d9fa1e6e8322fab2c3b9e9b03f56c537b42241139f824dd75066a1e7257cc - languageName: node - linkType: hard - "ansi-regex@npm:^5.0.1": version: 5.0.1 resolution: "ansi-regex@npm:5.0.1" @@ -3842,14 +3924,7 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^2.2.1": - version: 2.2.1 - resolution: "ansi-styles@npm:2.2.1" - checksum: ebc0e00381f2a29000d1dac8466a640ce11943cef3bda3cd0020dc042e31e1058ab59bf6169cd794a54c3a7338a61ebc404b7c91e004092dd20e028c432c9c2c - languageName: node - linkType: hard - -"ansi-styles@npm:^3.0.0, ansi-styles@npm:^3.2.1": +"ansi-styles@npm:^3.2.1": version: 3.2.1 resolution: "ansi-styles@npm:3.2.1" dependencies: @@ -3858,7 +3933,7 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0, ansi-styles@npm:^4.2.1, ansi-styles@npm:^4.3.0": +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0, ansi-styles@npm:^4.3.0": version: 4.3.0 resolution: "ansi-styles@npm:4.3.0" dependencies: @@ -4067,6 +4142,15 @@ __metadata: languageName: node linkType: hard +"async-retry@npm:^1.3.3": + version: 1.3.3 + resolution: "async-retry@npm:1.3.3" + dependencies: + retry: 0.13.1 + checksum: 38a7152ff7265a9321ea214b9c69e8224ab1febbdec98efbbde6e562f17ff68405569b796b1c5271f354aef8783665d29953f051f68c1fc45306e61aec82fdc4 + languageName: node + linkType: hard + "async@npm:^3.2.3": version: 3.2.4 resolution: "async@npm:3.2.4" @@ -4081,13 +4165,6 @@ __metadata: languageName: node linkType: hard -"at-least-node@npm:^1.0.0": - version: 1.0.0 - resolution: "at-least-node@npm:1.0.0" - checksum: 463e2f8e43384f1afb54bc68485c436d7622acec08b6fad269b421cb1d29cebb5af751426793d0961ed243146fe4dc983402f6d5a51b720b277818dbf6f2e49e - languageName: node - linkType: hard - "available-typed-arrays@npm:^1.0.5": version: 1.0.5 resolution: "available-typed-arrays@npm:1.0.5" @@ -4095,7 +4172,7 @@ __metadata: languageName: node linkType: hard -"aws-sdk@npm:^2.1005.0, aws-sdk@npm:^2.1069.0": +"aws-sdk@npm:^2.1005.0": version: 2.1414.0 resolution: "aws-sdk@npm:2.1414.0" dependencies: @@ -4127,23 +4204,14 @@ __metadata: languageName: node linkType: hard -"axios@npm:*": - version: 1.4.0 - resolution: "axios@npm:1.4.0" +"axios@npm:*, axios@npm:^1.6.7": + version: 1.6.7 + resolution: "axios@npm:1.6.7" dependencies: - follow-redirects: ^1.15.0 + follow-redirects: ^1.15.4 form-data: ^4.0.0 proxy-from-env: ^1.1.0 - checksum: 7fb6a4313bae7f45e89d62c70a800913c303df653f19eafec88e56cea2e3821066b8409bc68be1930ecca80e861c52aa787659df0ffec6ad4d451c7816b9386b - languageName: node - linkType: hard - -"axios@npm:^0.22.0": - version: 0.22.0 - resolution: "axios@npm:0.22.0" - dependencies: - follow-redirects: ^1.14.4 - checksum: 83dc4d02e180f69aa9f0d1d0d50b84ec3603517230d58b4c3720ebd440c7e64ea86c5e892dc6e19061608e8e1103504a709d8baa4051c4b7652101b523d04b63 + checksum: 87d4d429927d09942771f3b3a6c13580c183e31d7be0ee12f09be6d5655304996bb033d85e54be81606f4e89684df43be7bf52d14becb73a12727bf33298a082 languageName: node linkType: hard @@ -4290,7 +4358,7 @@ __metadata: languageName: node linkType: hard -"bl@npm:^4.0.3, bl@npm:^4.1.0": +"bl@npm:^4.1.0": version: 4.1.0 resolution: "bl@npm:4.1.0" dependencies: @@ -4508,6 +4576,28 @@ __metadata: languageName: node linkType: hard +"cacheable-lookup@npm:^5.0.3": + version: 5.0.4 + resolution: "cacheable-lookup@npm:5.0.4" + checksum: 763e02cf9196bc9afccacd8c418d942fc2677f22261969a4c2c2e760fa44a2351a81557bd908291c3921fe9beb10b976ba8fa50c5ca837c5a0dd945f16468f2d + languageName: node + linkType: hard + +"cacheable-request@npm:^7.0.2": + version: 7.0.4 + resolution: "cacheable-request@npm:7.0.4" + dependencies: + clone-response: ^1.0.2 + get-stream: ^5.1.0 + http-cache-semantics: ^4.0.0 + keyv: ^4.0.0 + lowercase-keys: ^2.0.0 + normalize-url: ^6.0.1 + responselike: ^2.0.0 + checksum: 0de9df773fd4e7dd9bd118959878f8f2163867e2e1ab3575ffbecbe6e75e80513dd0c68ba30005e5e5a7b377cc6162bbc00ab1db019bb4e9cb3c2f3f7a6f1ee4 + languageName: node + linkType: hard + "call-bind@npm:^1.0.0, call-bind@npm:^1.0.2": version: 1.0.2 resolution: "call-bind@npm:1.0.2" @@ -4525,6 +4615,16 @@ __metadata: languageName: node linkType: hard +"camel-case@npm:^4.1.2": + version: 4.1.2 + resolution: "camel-case@npm:4.1.2" + dependencies: + pascal-case: ^3.1.2 + tslib: ^2.0.3 + checksum: bcbd25cd253b3cbc69be3f535750137dbf2beb70f093bdc575f73f800acc8443d34fd52ab8f0a2413c34f1e8203139ffc88428d8863e4dfe530cfb257a379ad6 + languageName: node + linkType: hard + "camelcase-keys@npm:^7.0.0": version: 7.0.2 resolution: "camelcase-keys@npm:7.0.2" @@ -4558,6 +4658,17 @@ __metadata: languageName: node linkType: hard +"capital-case@npm:^1.0.4": + version: 1.0.4 + resolution: "capital-case@npm:1.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + upper-case-first: ^2.0.2 + checksum: 41fa8fa87f6d24d0835a2b4a9341a3eaecb64ac29cd7c5391f35d6175a0fa98ab044e7f2602e1ec3afc886231462ed71b5b80c590b8b41af903ec2c15e5c5931 + languageName: node + linkType: hard + "cardinal@npm:^2.1.1": version: 2.1.1 resolution: "cardinal@npm:2.1.1" @@ -4577,20 +4688,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^1.0.0": - version: 1.1.3 - resolution: "chalk@npm:1.1.3" - dependencies: - ansi-styles: ^2.2.1 - escape-string-regexp: ^1.0.2 - has-ansi: ^2.0.0 - strip-ansi: ^3.0.0 - supports-color: ^2.0.0 - checksum: 9d2ea6b98fc2b7878829eec223abcf404622db6c48396a9b9257f6d0ead2acf18231ae368d6a664a83f272b0679158da12e97b5229f794939e555cc574478acd - languageName: node - linkType: hard - -"chalk@npm:^2.0.0, chalk@npm:^2.4.1": +"chalk@npm:^2.0.0": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -4611,6 +4709,33 @@ __metadata: languageName: node linkType: hard +"chalk@npm:^5.3.0": + version: 5.3.0 + resolution: "chalk@npm:5.3.0" + checksum: 623922e077b7d1e9dedaea6f8b9e9352921f8ae3afe739132e0e00c275971bdd331268183b2628cf4ab1727c45ea1f28d7e24ac23ce1db1eb653c414ca8a5a80 + languageName: node + linkType: hard + +"change-case@npm:^4": + version: 4.1.2 + resolution: "change-case@npm:4.1.2" + dependencies: + camel-case: ^4.1.2 + capital-case: ^1.0.4 + constant-case: ^3.0.4 + dot-case: ^3.0.4 + header-case: ^2.0.4 + no-case: ^3.0.4 + param-case: ^3.0.4 + pascal-case: ^3.1.2 + path-case: ^3.0.4 + sentence-case: ^3.0.4 + snake-case: ^3.0.4 + tslib: ^2.0.3 + checksum: e4bc4a093a1f7cce8b33896665cf9e456e3bc3cc0def2ad7691b1994cfca99b3188d0a513b16855b01a6bd20692fcde12a7d4d87a5615c4c515bbbf0e651f116 + languageName: node + linkType: hard + "char-regex@npm:^1.0.2": version: 1.0.2 resolution: "char-regex@npm:1.0.2" @@ -4644,13 +4769,6 @@ __metadata: languageName: node linkType: hard -"chownr@npm:^1.1.1": - version: 1.1.4 - resolution: "chownr@npm:1.1.4" - checksum: 115648f8eb38bac5e41c3857f3e663f9c39ed6480d1349977c4d96c95a47266fcacc5a5aabf3cb6c481e22d72f41992827db47301851766c4fd77ac21a4f081d - languageName: node - linkType: hard - "chownr@npm:^2.0.0": version: 2.0.0 resolution: "chownr@npm:2.0.0" @@ -4697,13 +4815,6 @@ __metadata: languageName: node linkType: hard -"cli-boxes@npm:^1.0.0": - version: 1.0.0 - resolution: "cli-boxes@npm:1.0.0" - checksum: 101cfd6464a418a76523c332665eaf0641522f30ecc2492de48263ada6b0852333b2ed47b2998ddda621e7008471c51f597f813be798db237c33ba45b27e802a - languageName: node - linkType: hard - "cli-cursor@npm:^3.1.0": version: 3.1.0 resolution: "cli-cursor@npm:3.1.0" @@ -4713,7 +4824,7 @@ __metadata: languageName: node linkType: hard -"cli-progress@npm:^3.10.0, cli-progress@npm:^3.12.0": +"cli-progress@npm:^3.12.0": version: 3.12.0 resolution: "cli-progress@npm:3.12.0" dependencies: @@ -4773,6 +4884,15 @@ __metadata: languageName: node linkType: hard +"clone-response@npm:^1.0.2": + version: 1.0.3 + resolution: "clone-response@npm:1.0.3" + dependencies: + mimic-response: ^1.0.0 + checksum: 4e671cac39b11c60aa8ba0a450657194a5d6504df51bca3fac5b3bd0145c4f8e8464898f87c8406b83232e3bc5cca555f51c1f9c8ac023969ebfbf7f6bdabb2e + languageName: node + linkType: hard + "clone-stats@npm:^1.0.0": version: 1.0.0 resolution: "clone-stats@npm:1.0.0" @@ -4821,13 +4941,6 @@ __metadata: languageName: node linkType: hard -"code-point-at@npm:^1.0.0": - version: 1.1.0 - resolution: "code-point-at@npm:1.1.0" - checksum: 17d5666611f9b16d64fdf48176d9b7fb1c7d1c1607a189f7e600040a11a6616982876af148230336adb7d8fe728a559f743a4e29db3747e3b1a32fa7f4529681 - languageName: node - linkType: hard - "collect-v8-coverage@npm:^1.0.0": version: 1.0.2 resolution: "collect-v8-coverage@npm:1.0.2" @@ -4860,13 +4973,23 @@ __metadata: languageName: node linkType: hard -"color-name@npm:~1.1.4": +"color-name@npm:^1.0.0, color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 languageName: node linkType: hard +"color-string@npm:^1.9.0": + version: 1.9.1 + resolution: "color-string@npm:1.9.1" + dependencies: + color-name: ^1.0.0 + simple-swizzle: ^0.2.2 + checksum: c13fe7cff7885f603f49105827d621ce87f4571d78ba28ef4a3f1a104304748f620615e6bf065ecd2145d0d9dad83a3553f52bb25ede7239d18e9f81622f1cc5 + languageName: node + linkType: hard + "color-support@npm:^1.1.2, color-support@npm:^1.1.3": version: 1.1.3 resolution: "color-support@npm:1.1.3" @@ -4876,6 +4999,16 @@ __metadata: languageName: node linkType: hard +"color@npm:^4.2.3": + version: 4.2.3 + resolution: "color@npm:4.2.3" + dependencies: + color-convert: ^2.0.1 + color-string: ^1.9.0 + checksum: 0579629c02c631b426780038da929cca8e8d80a40158b09811a0112a107c62e10e4aad719843b791b1e658ab4e800558f2e87ca4522c8b32349d497ecb6adeb4 + languageName: node + linkType: hard + "colorette@npm:^2.0.16": version: 2.0.20 resolution: "colorette@npm:2.0.20" @@ -4934,26 +5067,6 @@ __metadata: languageName: node linkType: hard -"concurrently@npm:^7.0.0": - version: 7.6.0 - resolution: "concurrently@npm:7.6.0" - dependencies: - chalk: ^4.1.0 - date-fns: ^2.29.1 - lodash: ^4.17.21 - rxjs: ^7.0.0 - shell-quote: ^1.7.3 - spawn-command: ^0.0.2-1 - supports-color: ^8.1.0 - tree-kill: ^1.2.2 - yargs: ^17.3.1 - bin: - conc: dist/bin/concurrently.js - concurrently: dist/bin/concurrently.js - checksum: f705c9a7960f1b16559ca64958043faeeef6385c0bf30a03d1375e15ab2d96dba4f8166f1bbbb1c85e8da35ca0ce3c353875d71dff2aa132b2357bb533b3332e - languageName: node - linkType: hard - "confusing-browser-globals@npm:1.0.10": version: 1.0.10 resolution: "confusing-browser-globals@npm:1.0.10" @@ -4975,6 +5088,17 @@ __metadata: languageName: node linkType: hard +"constant-case@npm:^3.0.4": + version: 3.0.4 + resolution: "constant-case@npm:3.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + upper-case: ^2.0.2 + checksum: 6c3346d51afc28d9fae922e966c68eb77a19d94858dba230dd92d7b918b37d36db50f0311e9ecf6847e43e934b1c01406a0936973376ab17ec2c471fbcfb2cf3 + languageName: node + linkType: hard + "content-type@npm:^1.0.4": version: 1.0.5 resolution: "content-type@npm:1.0.5" @@ -5046,19 +5170,6 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^6.0.0, cross-spawn@npm:^6.0.5": - version: 6.0.5 - resolution: "cross-spawn@npm:6.0.5" - dependencies: - nice-try: ^1.0.4 - path-key: ^2.0.1 - semver: ^5.5.0 - shebang-command: ^1.2.0 - which: ^1.2.9 - checksum: f893bb0d96cd3d5751d04e67145bdddf25f99449531a72e82dcbbd42796bbc8268c1076c6b3ea51d4d455839902804b94bc45dfb37ecbb32ea8e54a6741c3ab9 - languageName: node - linkType: hard - "cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": version: 7.0.3 resolution: "cross-spawn@npm:7.0.3" @@ -5086,15 +5197,6 @@ __metadata: languageName: node linkType: hard -"date-fns@npm:^2.29.1": - version: 2.30.0 - resolution: "date-fns@npm:2.30.0" - dependencies: - "@babel/runtime": ^7.21.0 - checksum: f7be01523282e9bb06c0cd2693d34f245247a29098527d4420628966a2d9aad154bd0e90a6b1cf66d37adcb769cd108cf8a7bd49d76db0fb119af5cdd13644f4 - languageName: node - linkType: hard - "dateformat@npm:^4.5.0": version: 4.6.3 resolution: "dateformat@npm:4.6.3" @@ -5161,6 +5263,15 @@ __metadata: languageName: node linkType: hard +"decompress-response@npm:^6.0.0": + version: 6.0.0 + resolution: "decompress-response@npm:6.0.0" + dependencies: + mimic-response: ^3.1.0 + checksum: d377cf47e02d805e283866c3f50d3d21578b779731e8c5072d6ce8c13cc31493db1c2f6784da9d1d5250822120cefa44f1deab112d5981015f2e17444b763812 + languageName: node + linkType: hard + "dedent@npm:^0.7.0": version: 0.7.0 resolution: "dedent@npm:0.7.0" @@ -5198,6 +5309,13 @@ __metadata: languageName: node linkType: hard +"defer-to-connect@npm:^2.0.0": + version: 2.0.1 + resolution: "defer-to-connect@npm:2.0.1" + checksum: 8a9b50d2f25446c0bfefb55a48e90afd58f85b21bcf78e9207cd7b804354f6409032a1705c2491686e202e64fc05f147aa5aa45f9aa82627563f045937f5791b + languageName: node + linkType: hard + "define-lazy-prop@npm:^2.0.0": version: 2.0.0 resolution: "define-lazy-prop@npm:2.0.0" @@ -5250,10 +5368,10 @@ __metadata: languageName: node linkType: hard -"detect-indent@npm:^6.0.0": - version: 6.1.0 - resolution: "detect-indent@npm:6.1.0" - checksum: ab953a73c72dbd4e8fc68e4ed4bfd92c97eb6c43734af3900add963fd3a9316f3bc0578b018b24198d4c31a358571eff5f0656e81a1f3b9ad5c547d58b2d093d +"detect-indent@npm:^7.0.1": + version: 7.0.1 + resolution: "detect-indent@npm:7.0.1" + checksum: cbf3f0b1c3c881934ca94428e1179b26ab2a587e0d719031d37a67fb506d49d067de54ff057cb1e772e75975fed5155c01cd4518306fee60988b1486e3fc7768 languageName: node linkType: hard @@ -5264,6 +5382,13 @@ __metadata: languageName: node linkType: hard +"detect-newline@npm:^4.0.0": + version: 4.0.1 + resolution: "detect-newline@npm:4.0.1" + checksum: 0409ecdfb93419591ccff24fccfe2ddddad29b66637d1ed898872125b25af05014fdeedc9306339577060f69f59fe6e9830cdd80948597f136dfbffefa60599c + languageName: node + linkType: hard + "dezalgo@npm:^1.0.0": version: 1.0.4 resolution: "dezalgo@npm:1.0.4" @@ -5322,6 +5447,16 @@ __metadata: languageName: node linkType: hard +"dot-case@npm:^3.0.4": + version: 3.0.4 + resolution: "dot-case@npm:3.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + checksum: a65e3519414856df0228b9f645332f974f2bf5433370f544a681122eab59e66038fc3349b4be1cdc47152779dac71a5864f1ccda2f745e767c46e9c6543b1169 + languageName: node + linkType: hard + "dynamic-dedupe@npm:^0.3.0": version: 0.3.0 resolution: "dynamic-dedupe@npm:0.3.0" @@ -5348,7 +5483,7 @@ __metadata: languageName: node linkType: hard -"ejs@npm:^3.1.6, ejs@npm:^3.1.8": +"ejs@npm:^3.1.8, ejs@npm:^3.1.9": version: 3.1.9 resolution: "ejs@npm:3.1.9" dependencies: @@ -5396,7 +5531,7 @@ __metadata: languageName: node linkType: hard -"end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1": +"end-of-stream@npm:^1.1.0": version: 1.4.4 resolution: "end-of-stream@npm:1.4.4" dependencies: @@ -5567,7 +5702,7 @@ __metadata: languageName: node linkType: hard -"escape-string-regexp@npm:^1.0.2, escape-string-regexp@npm:^1.0.5": +"escape-string-regexp@npm:^1.0.5": version: 1.0.5 resolution: "escape-string-regexp@npm:1.0.5" checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 @@ -6238,21 +6373,6 @@ __metadata: languageName: node linkType: hard -"execa@npm:^0.10.0": - version: 0.10.0 - resolution: "execa@npm:0.10.0" - dependencies: - cross-spawn: ^6.0.0 - get-stream: ^3.0.0 - is-stream: ^1.1.0 - npm-run-path: ^2.0.0 - p-finally: ^1.0.0 - signal-exit: ^3.0.0 - strip-eof: ^1.0.0 - checksum: da132af2b209e69d79f91751ac6d15ddbb8d9414f9e5f7a53405232679a3dca00fe11eb14e0cd5c2c374a749061410a7717fcc3094f6dd779cf4d259faa58d9a - languageName: node - linkType: hard - "execa@npm:^5.0.0, execa@npm:^5.1.1": version: 5.1.1 resolution: "execa@npm:5.1.1" @@ -6544,13 +6664,13 @@ __metadata: languageName: node linkType: hard -"follow-redirects@npm:^1.14.4, follow-redirects@npm:^1.14.7, follow-redirects@npm:^1.15.0": - version: 1.15.2 - resolution: "follow-redirects@npm:1.15.2" +"follow-redirects@npm:^1.14.7, follow-redirects@npm:^1.15.4": + version: 1.15.5 + resolution: "follow-redirects@npm:1.15.5" peerDependenciesMeta: debug: optional: true - checksum: faa66059b66358ba65c234c2f2a37fcec029dc22775f35d9ad6abac56003268baf41e55f9ee645957b32c7d9f62baf1f0b906e68267276f54ec4b4c597c2b190 + checksum: 5ca49b5ce6f44338cbfc3546823357e7a70813cecc9b7b768158a1d32c1e62e7407c944402a918ea8c38ae2e78266312d617dc68783fac502cbb55e1047b34ec languageName: node linkType: hard @@ -6626,24 +6746,6 @@ __metadata: languageName: node linkType: hard -"fs-constants@npm:^1.0.0": - version: 1.0.0 - resolution: "fs-constants@npm:1.0.0" - checksum: 18f5b718371816155849475ac36c7d0b24d39a11d91348cfcb308b4494824413e03572c403c86d3a260e049465518c4f0d5bd00f0371cdfcad6d4f30a85b350d - languageName: node - linkType: hard - -"fs-extra@npm:^6.0.1": - version: 6.0.1 - resolution: "fs-extra@npm:6.0.1" - dependencies: - graceful-fs: ^4.1.2 - jsonfile: ^4.0.0 - universalify: ^0.1.0 - checksum: 133dbd765e05c1cdaaf723308e00ffbe746da5ad516ad890ae2da2a538982c1175371055c778fbe68d1fca1da9ed4003ba55c4a14e070372eabf6a7c48062759 - languageName: node - linkType: hard - "fs-extra@npm:^8.1": version: 8.1.0 resolution: "fs-extra@npm:8.1.0" @@ -6655,18 +6757,6 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^9.0.1, fs-extra@npm:^9.1.0": - version: 9.1.0 - resolution: "fs-extra@npm:9.1.0" - dependencies: - at-least-node: ^1.0.0 - graceful-fs: ^4.2.0 - jsonfile: ^6.0.1 - universalify: ^2.0.0 - checksum: ba71ba32e0faa74ab931b7a0031d1523c66a73e225de7426e275e238e312d07313d2da2d33e34a52aa406c8763ade5712eb3ec9ba4d9edce652bcacdc29e6b20 - languageName: node - linkType: hard - "fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0": version: 2.1.0 resolution: "fs-minipass@npm:2.1.0" @@ -6817,13 +6907,6 @@ __metadata: languageName: node linkType: hard -"get-stdin@npm:^4.0.1": - version: 4.0.1 - resolution: "get-stdin@npm:4.0.1" - checksum: 4f73d3fe0516bc1f3dc7764466a68ad7c2ba809397a02f56c2a598120e028430fcff137a648a01876b2adfb486b4bc164119f98f1f7d7c0abd63385bdaa0113f - languageName: node - linkType: hard - "get-stdin@npm:^9.0.0": version: 9.0.0 resolution: "get-stdin@npm:9.0.0" @@ -6831,13 +6914,6 @@ __metadata: languageName: node linkType: hard -"get-stream@npm:^3.0.0": - version: 3.0.0 - resolution: "get-stream@npm:3.0.0" - checksum: 36142f46005ed74ce3a45c55545ec4e7da8e243554179e345a786baf144e5c4a35fb7bdc49fadfa9f18bd08000589b6fe364abdadfc4e1eb0e1b9914a6bb9c56 - languageName: node - linkType: hard - "get-stream@npm:^5.1.0": version: 5.2.0 resolution: "get-stream@npm:5.2.0" @@ -6873,7 +6949,14 @@ __metadata: languageName: node linkType: hard -"github-slugger@npm:^1.4.0": +"git-hooks-list@npm:^3.0.0": + version: 3.1.0 + resolution: "git-hooks-list@npm:3.1.0" + checksum: 05cbdb29e1e14f3b6fde78c876a34383e4476b1be32e8486ad03293f01add884c1a8df8c2dce2ca5d99119c94951b2ff9fa9cbd51d834ae6477b6813cefb998f + languageName: node + linkType: hard + +"github-slugger@npm:^1.5.0": version: 1.5.0 resolution: "github-slugger@npm:1.5.0" checksum: c70988224578b3bdaa25df65973ffc8c24594a77a28550c3636e495e49d17aef5cdb04c04fa3f1744babef98c61eecc6a43299a13ea7f3cc33d680bf9053ffbe @@ -6922,7 +7005,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.0.0, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": +"glob@npm:^7.0.0, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -6974,7 +7057,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^10.0.1, globby@npm:^10.0.2": +"globby@npm:^10.0.2": version: 10.0.2 resolution: "globby@npm:10.0.2" dependencies: @@ -7004,7 +7087,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^13.1.1": +"globby@npm:^13.1.1, globby@npm:^13.1.2": version: 13.2.2 resolution: "globby@npm:13.2.2" dependencies: @@ -7026,7 +7109,26 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.5, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"got@npm:^11": + version: 11.8.6 + resolution: "got@npm:11.8.6" + dependencies: + "@sindresorhus/is": ^4.0.0 + "@szmarczak/http-timer": ^4.0.5 + "@types/cacheable-request": ^6.0.1 + "@types/responselike": ^1.0.0 + cacheable-lookup: ^5.0.3 + cacheable-request: ^7.0.2 + decompress-response: ^6.0.0 + http2-wrapper: ^1.0.0-beta.5.2 + lowercase-keys: ^2.0.0 + p-cancelable: ^2.0.0 + responselike: ^2.0.0 + checksum: bbc783578a8d5030c8164ef7f57ce41b5ad7db2ed13371e1944bef157eeca5a7475530e07c0aaa71610d7085474d0d96222c9f4268d41db333a17e39b463f45d + languageName: node + linkType: hard + +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.5, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 @@ -7056,7 +7158,9 @@ __metadata: "@babel/eslint-parser": ^7.15.8 "@cliqz/adblocker-playwright": ^1.25.0 "@kubernetes/client-node": ^0.17.0 - "@oclif/core": ^1.2.0 + "@oclif/core": ^3.25.0 + "@oclif/plugin-autocomplete": ^3 + "@oclif/plugin-help": ^6 "@playwright/test": ^1.30.0 "@sentry/node": ^6.13.3 "@types/axios": ^0.14.0 @@ -7075,7 +7179,7 @@ __metadata: "@typescript-eslint/eslint-plugin": ^5.30.6 "@typescript-eslint/parser": ^5.30.6 aws-sdk: ^2.1005.0 - axios: ^0.22.0 + axios: ^1.6.7 core-js-pure: ^3.24.0 cross-fetch: ^3.1.4 env-ci: ^5.0.2 @@ -7093,13 +7197,14 @@ __metadata: lodash: ^4.17.21 mathjs: ^9.5.0 minimist: ^1.2.5 - oclif: ^2.4.3 + oclif: ^4.5.4 playwright: 1.30.0 prettier: ^2.4.1 trace-unhandled: ^2.0.1 ts-jest: ^28.0.7 + ts-node: ^10.9.2 ts-node-dev: ^2.0.0 - typescript: ^4.7.4 + typescript: ^5.4.2 wait-on: ^6.0.0 xo: ^0.52.3 bin: @@ -7138,15 +7243,6 @@ __metadata: languageName: node linkType: hard -"has-ansi@npm:^2.0.0": - version: 2.0.0 - resolution: "has-ansi@npm:2.0.0" - dependencies: - ansi-regex: ^2.0.0 - checksum: 1b51daa0214440db171ff359d0a2d17bc20061164c57e76234f614c91dbd2a79ddd68dfc8ee73629366f7be45a6df5f2ea9de83f52e1ca24433f2cc78c35d8ec - languageName: node - linkType: hard - "has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": version: 1.0.2 resolution: "has-bigints@npm:1.0.2" @@ -7226,6 +7322,16 @@ __metadata: languageName: node linkType: hard +"header-case@npm:^2.0.4": + version: 2.0.4 + resolution: "header-case@npm:2.0.4" + dependencies: + capital-case: ^1.0.4 + tslib: ^2.0.3 + checksum: 571c83eeb25e8130d172218712f807c0b96d62b020981400bccc1503a7cf14b09b8b10498a962d2739eccf231d950e3848ba7d420b58a6acd2f9283439546cd9 + languageName: node + linkType: hard + "hosted-git-info@npm:^2.1.4": version: 2.8.9 resolution: "hosted-git-info@npm:2.8.9" @@ -7258,14 +7364,14 @@ __metadata: languageName: node linkType: hard -"http-cache-semantics@npm:^4.1.0, http-cache-semantics@npm:^4.1.1": +"http-cache-semantics@npm:^4.0.0, http-cache-semantics@npm:^4.1.0, http-cache-semantics@npm:^4.1.1": version: 4.1.1 resolution: "http-cache-semantics@npm:4.1.1" checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 languageName: node linkType: hard -"http-call@npm:^5.1.2, http-call@npm:^5.2.2": +"http-call@npm:^5.2.2": version: 5.3.0 resolution: "http-call@npm:5.3.0" dependencies: @@ -7312,6 +7418,16 @@ __metadata: languageName: node linkType: hard +"http2-wrapper@npm:^1.0.0-beta.5.2": + version: 1.0.3 + resolution: "http2-wrapper@npm:1.0.3" + dependencies: + quick-lru: ^5.1.1 + resolve-alpn: ^1.0.0 + checksum: 74160b862ec699e3f859739101ff592d52ce1cb207b7950295bf7962e4aa1597ef709b4292c673bece9c9b300efad0559fc86c71b1409c7a1e02b7229456003e + languageName: node + linkType: hard + "https-proxy-agent@npm:^5.0.0": version: 5.0.1 resolution: "https-proxy-agent@npm:5.0.1" @@ -7576,6 +7692,13 @@ __metadata: languageName: node linkType: hard +"is-arrayish@npm:^0.3.1": + version: 0.3.2 + resolution: "is-arrayish@npm:0.3.2" + checksum: 977e64f54d91c8f169b59afcd80ff19227e9f5c791fa28fa2e5bce355cbaf6c2c356711b734656e80c9dd4a854dd7efcf7894402f1031dfc5de5d620775b4d5f + languageName: node + linkType: hard + "is-bigint@npm:^1.0.1": version: 1.0.4 resolution: "is-bigint@npm:1.0.4" @@ -7654,22 +7777,6 @@ __metadata: languageName: node linkType: hard -"is-fullwidth-code-point@npm:^1.0.0": - version: 1.0.0 - resolution: "is-fullwidth-code-point@npm:1.0.0" - dependencies: - number-is-nan: ^1.0.0 - checksum: 4d46a7465a66a8aebcc5340d3b63a56602133874af576a9ca42c6f0f4bd787a743605771c5f246db77da96605fefeffb65fc1dbe862dcc7328f4b4d03edf5a57 - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^2.0.0": - version: 2.0.0 - resolution: "is-fullwidth-code-point@npm:2.0.0" - checksum: eef9c6e15f68085fec19ff6a978a6f1b8f48018fd1265035552078ee945573594933b09bbd6f562553e2a241561439f1ef5339276eba68d272001343084cfab8 - languageName: node - linkType: hard - "is-fullwidth-code-point@npm:^3.0.0": version: 3.0.0 resolution: "is-fullwidth-code-point@npm:3.0.0" @@ -7796,6 +7903,13 @@ __metadata: languageName: node linkType: hard +"is-plain-obj@npm:^4.1.0": + version: 4.1.0 + resolution: "is-plain-obj@npm:4.1.0" + checksum: 6dc45da70d04a81f35c9310971e78a6a3c7a63547ef782e3a07ee3674695081b6ca4e977fbb8efc48dae3375e0b34558d2bcd722aec9bddfa2d7db5b041be8ce + languageName: node + linkType: hard + "is-plain-object@npm:^5.0.0": version: 5.0.0 resolution: "is-plain-object@npm:5.0.0" @@ -7857,13 +7971,6 @@ __metadata: languageName: node linkType: hard -"is-stream@npm:^1.1.0": - version: 1.1.0 - resolution: "is-stream@npm:1.1.0" - checksum: 063c6bec9d5647aa6d42108d4c59723d2bd4ae42135a2d4db6eadbd49b7ea05b750fd69d279e5c7c45cf9da753ad2c00d8978be354d65aa9f6bb434969c6a2ae - languageName: node - linkType: hard - "is-stream@npm:^2.0.0": version: 2.0.1 resolution: "is-stream@npm:2.0.1" @@ -7902,7 +8009,7 @@ __metadata: languageName: node linkType: hard -"is-typedarray@npm:^1.0.0, is-typedarray@npm:~1.0.0": +"is-typedarray@npm:~1.0.0": version: 1.0.0 resolution: "is-typedarray@npm:1.0.0" checksum: 3508c6cd0a9ee2e0df2fa2e9baabcdc89e911c7bd5cf64604586697212feec525aa21050e48affb5ffc3df20f0f5d2e2cf79b08caa64e1ccc9578e251763aef7 @@ -8613,6 +8720,13 @@ __metadata: languageName: node linkType: hard +"json-buffer@npm:3.0.1": + version: 3.0.1 + resolution: "json-buffer@npm:3.0.1" + checksum: 9026b03edc2847eefa2e37646c579300a1f3a4586cfb62bf857832b60c852042d0d6ae55d1afb8926163fa54c2b01d83ae24705f34990348bdac6273a29d4581 + languageName: node + linkType: hard + "json-parse-better-errors@npm:^1.0.1": version: 1.0.2 resolution: "json-parse-better-errors@npm:1.0.2" @@ -8701,19 +8815,6 @@ __metadata: languageName: node linkType: hard -"jsonfile@npm:^6.0.1": - version: 6.1.0 - resolution: "jsonfile@npm:6.1.0" - dependencies: - graceful-fs: ^4.1.6 - universalify: ^2.0.0 - dependenciesMeta: - graceful-fs: - optional: true - checksum: 7af3b8e1ac8fe7f1eccc6263c6ca14e1966fcbc74b618d3c78a0a2075579487547b94f72b7a1114e844a1e15bb00d440e5d1720bfc4612d790a6f285d5ea8354 - languageName: node - linkType: hard - "jsonparse@npm:^1.3.1": version: 1.3.1 resolution: "jsonparse@npm:1.3.1" @@ -8754,6 +8855,15 @@ __metadata: languageName: node linkType: hard +"keyv@npm:^4.0.0": + version: 4.5.4 + resolution: "keyv@npm:4.5.4" + dependencies: + json-buffer: 3.0.1 + checksum: 74a24395b1c34bd44ad5cb2b49140d087553e170625240b86755a6604cd65aa16efdbdeae5cdb17ba1284a0fbb25ad06263755dbc71b8d8b06f74232ce3cdd72 + languageName: node + linkType: hard + "kind-of@npm:^6.0.3": version: 6.0.3 resolution: "kind-of@npm:6.0.3" @@ -8822,18 +8932,6 @@ __metadata: languageName: node linkType: hard -"load-json-file@npm:^6.2.0": - version: 6.2.0 - resolution: "load-json-file@npm:6.2.0" - dependencies: - graceful-fs: ^4.1.15 - parse-json: ^5.0.0 - strip-bom: ^4.0.0 - type-fest: ^0.6.0 - checksum: 4429e430ebb99375fc7cd936348e4f7ba729486080ced4272091c1e386a7f5f738ea3337d8ffd4b01c2f5bc3ddde92f2c780045b66838fe98bdb79f901884643 - languageName: node - linkType: hard - "load-yaml-file@npm:^0.2.0": version: 0.2.0 resolution: "load-yaml-file@npm:0.2.0" @@ -8880,6 +8978,13 @@ __metadata: languageName: node linkType: hard +"lodash._reinterpolate@npm:^3.0.0": + version: 3.0.0 + resolution: "lodash._reinterpolate@npm:3.0.0" + checksum: 06d2d5f33169604fa5e9f27b6067ed9fb85d51a84202a656901e5ffb63b426781a601508466f039c720af111b0c685d12f1a5c14ff8df5d5f27e491e562784b2 + languageName: node + linkType: hard + "lodash.memoize@npm:4.x": version: 4.1.2 resolution: "lodash.memoize@npm:4.1.2" @@ -8894,6 +8999,25 @@ __metadata: languageName: node linkType: hard +"lodash.template@npm:^4.5.0": + version: 4.5.0 + resolution: "lodash.template@npm:4.5.0" + dependencies: + lodash._reinterpolate: ^3.0.0 + lodash.templatesettings: ^4.0.0 + checksum: ca64e5f07b6646c9d3dbc0fe3aaa995cb227c4918abd1cef7a9024cd9c924f2fa389a0ec4296aa6634667e029bc81d4bbdb8efbfde11df76d66085e6c529b450 + languageName: node + linkType: hard + +"lodash.templatesettings@npm:^4.0.0": + version: 4.2.0 + resolution: "lodash.templatesettings@npm:4.2.0" + dependencies: + lodash._reinterpolate: ^3.0.0 + checksum: 863e025478b092997e11a04e9d9e735875eeff1ffcd6c61742aa8272e3c2cddc89ce795eb9726c4e74cef5991f722897ff37df7738a125895f23fc7d12a7bb59 + languageName: node + linkType: hard + "lodash@npm:^4.13.1, lodash@npm:^4.17.10, lodash@npm:^4.17.11, lodash@npm:^4.17.21": version: 4.17.21 resolution: "lodash@npm:4.17.21" @@ -8923,6 +9047,15 @@ __metadata: languageName: node linkType: hard +"lower-case@npm:^2.0.2": + version: 2.0.2 + resolution: "lower-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 83a0a5f159ad7614bee8bf976b96275f3954335a84fad2696927f609ddae902802c4f3312d86668722e668bef41400254807e1d3a7f2e8c3eede79691aa1f010 + languageName: node + linkType: hard + "lowercase-keys@npm:^1.0.0": version: 1.0.1 resolution: "lowercase-keys@npm:1.0.1" @@ -8930,6 +9063,13 @@ __metadata: languageName: node linkType: hard +"lowercase-keys@npm:^2.0.0": + version: 2.0.0 + resolution: "lowercase-keys@npm:2.0.0" + checksum: 24d7ebd56ccdf15ff529ca9e08863f3c54b0b9d1edb97a3ae1af34940ae666c01a1e6d200707bce730a8ef76cb57cc10e65f245ecaaf7e6bc8639f2fb460ac23 + languageName: node + linkType: hard + "lru-cache@npm:^5.1.1": version: 5.1.1 resolution: "lru-cache@npm:5.1.1" @@ -9214,6 +9354,20 @@ __metadata: languageName: node linkType: hard +"mimic-response@npm:^1.0.0": + version: 1.0.1 + resolution: "mimic-response@npm:1.0.1" + checksum: 034c78753b0e622bc03c983663b1cdf66d03861050e0c8606563d149bc2b02d63f62ce4d32be4ab50d0553ae0ffe647fc34d1f5281184c6e1e8cf4d85e8d9823 + languageName: node + linkType: hard + +"mimic-response@npm:^3.1.0": + version: 3.1.0 + resolution: "mimic-response@npm:3.1.0" + checksum: 25739fee32c17f433626bf19f016df9036b75b3d84a3046c7d156e72ec963dd29d7fc8a302f55a3d6c5a4ff24259676b15d915aad6480815a969ff2ec0836867 + languageName: node + linkType: hard + "min-indent@npm:^1.0.0, min-indent@npm:^1.0.1": version: 1.0.1 resolution: "min-indent@npm:1.0.1" @@ -9248,7 +9402,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^9.0.0, minimatch@npm:^9.0.1": +"minimatch@npm:^9.0.0, minimatch@npm:^9.0.1, minimatch@npm:^9.0.3": version: 9.0.3 resolution: "minimatch@npm:9.0.3" dependencies: @@ -9268,7 +9422,7 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.1.0, minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6": +"minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 @@ -9399,13 +9553,6 @@ __metadata: languageName: node linkType: hard -"mkdirp-classic@npm:^0.5.2": - version: 0.5.3 - resolution: "mkdirp-classic@npm:0.5.3" - checksum: 3f4e088208270bbcc148d53b73e9a5bd9eef05ad2cbf3b3d0ff8795278d50dd1d11a8ef1875ff5aea3fa888931f95bfcb2ad5b7c1061cfefd6284d199e6776ac - languageName: node - linkType: hard - "mkdirp-infer-owner@npm:^2.0.0": version: 2.0.0 resolution: "mkdirp-infer-owner@npm:2.0.0" @@ -9495,10 +9642,13 @@ __metadata: languageName: node linkType: hard -"nice-try@npm:^1.0.4": - version: 1.0.5 - resolution: "nice-try@npm:1.0.5" - checksum: 0b4af3b5bb5d86c289f7a026303d192a7eb4417231fe47245c460baeabae7277bcd8fd9c728fb6bd62c30b3e15cd6620373e2cf33353b095d8b403d3e8a15aff +"no-case@npm:^3.0.4": + version: 3.0.4 + resolution: "no-case@npm:3.0.4" + dependencies: + lower-case: ^2.0.2 + tslib: ^2.0.3 + checksum: 0b2ebc113dfcf737d48dde49cfebf3ad2d82a8c3188e7100c6f375e30eafbef9e9124aadc3becef237b042fd5eb0aad2fd78669c20972d045bbe7fea8ba0be5c languageName: node linkType: hard @@ -9636,6 +9786,13 @@ __metadata: languageName: node linkType: hard +"normalize-url@npm:^6.0.1": + version: 6.1.0 + resolution: "normalize-url@npm:6.1.0" + checksum: 4a4944631173e7d521d6b80e4c85ccaeceb2870f315584fa30121f505a6dfd86439c5e3fdd8cd9e0e291290c41d0c3599f0cb12ab356722ed242584c30348e50 + languageName: node + linkType: hard + "npm-bundled@npm:^1.1.1": version: 1.1.2 resolution: "npm-bundled@npm:1.1.2" @@ -9792,15 +9949,6 @@ __metadata: languageName: node linkType: hard -"npm-run-path@npm:^2.0.0": - version: 2.0.2 - resolution: "npm-run-path@npm:2.0.2" - dependencies: - path-key: ^2.0.0 - checksum: acd5ad81648ba4588ba5a8effb1d98d2b339d31be16826a118d50f182a134ac523172101b82eab1d01cb4c2ba358e857d54cfafd8163a1ffe7bd52100b741125 - languageName: node - linkType: hard - "npm-run-path@npm:^4.0.1": version: 4.0.1 resolution: "npm-run-path@npm:4.0.1" @@ -9834,13 +9982,6 @@ __metadata: languageName: node linkType: hard -"number-is-nan@npm:^1.0.0": - version: 1.0.1 - resolution: "number-is-nan@npm:1.0.1" - checksum: 13656bc9aa771b96cef209ffca31c31a03b507ca6862ba7c3f638a283560620d723d52e626d57892c7fff475f4c36ac07f0600f14544692ff595abff214b9ffb - languageName: node - linkType: hard - "oauth-sign@npm:~0.9.0": version: 0.9.0 resolution: "oauth-sign@npm:0.9.0" @@ -9913,31 +10054,33 @@ __metadata: languageName: node linkType: hard -"oclif@npm:^2.4.3": - version: 2.7.0 - resolution: "oclif@npm:2.7.0" +"oclif@npm:^4.5.4": + version: 4.5.4 + resolution: "oclif@npm:4.5.4" dependencies: - "@oclif/core": ^1.6.4 - "@oclif/plugin-help": ^5.1.11 - "@oclif/plugin-not-found": ^2.3.1 - "@oclif/plugin-warn-if-update-available": ^2.0.4 - aws-sdk: ^2.1069.0 - concurrently: ^7.0.0 + "@aws-sdk/client-cloudfront": ^3.525.0 + "@aws-sdk/client-s3": ^3.515.0 + "@oclif/core": ^3.21.0 + "@oclif/plugin-help": ^6.0.14 + "@oclif/plugin-not-found": ^3.0.14 + "@oclif/plugin-warn-if-update-available": ^3.0.12 + async-retry: ^1.3.3 + change-case: ^4 debug: ^4.3.3 find-yarn-workspace-root: ^2.0.0 fs-extra: ^8.1 - github-slugger: ^1.4.0 - lodash: ^4.17.21 + github-slugger: ^1.5.0 + got: ^11 + lodash.template: ^4.5.0 normalize-package-data: ^3.0.3 - qqjs: ^0.3.11 - semver: ^7.3.5 - tslib: ^2.3.1 - yeoman-environment: ^3.9.1 - yeoman-generator: ^5.6.1 - yosay: ^2.0.2 + semver: ^7.6.0 + sort-package-json: ^2.8.0 + validate-npm-package-name: ^5.0.0 + yeoman-environment: ^3.15.1 + yeoman-generator: ^5.8.0 bin: - oclif: bin/run - checksum: 7193b8fb2bde97fef1c4ab8069d3144bd86a822ddaac669a46167bcadf064f5ffc5a68e518f317ec50643580c46c7f29f7877b6839c52f99a1799a29190eeb42 + oclif: bin/run.js + checksum: 7f535a0a0a7ec7e6222bb47d6885600ea9742de454637941a1bda5198ce2f2c15587d28e2ff37d091b0fdd76681c5775a755c250f2caad22aebf668e8e7a6b10 languageName: node linkType: hard @@ -10039,6 +10182,13 @@ __metadata: languageName: node linkType: hard +"p-cancelable@npm:^2.0.0": + version: 2.1.1 + resolution: "p-cancelable@npm:2.1.1" + checksum: 3dba12b4fb4a1e3e34524535c7858fc82381bbbd0f247cc32dedc4018592a3950ce66b106d0880b4ec4c2d8d6576f98ca885dc1d7d0f274d1370be20e9523ddf + languageName: node + linkType: hard + "p-finally@npm:^1.0.0": version: 1.0.0 resolution: "p-finally@npm:1.0.0" @@ -10202,10 +10352,13 @@ __metadata: languageName: node linkType: hard -"pad-component@npm:0.0.1": - version: 0.0.1 - resolution: "pad-component@npm:0.0.1" - checksum: 2d92ad68b6c86ce2afcc75c9536401ef8b25a03f9b1330fbe5a9a9862a5cbb0e4088848d427919f4cb7526c333b7eada7cb590328e69775257e20363023bb424 +"param-case@npm:^3.0.4": + version: 3.0.4 + resolution: "param-case@npm:3.0.4" + dependencies: + dot-case: ^3.0.4 + tslib: ^2.0.3 + checksum: b34227fd0f794e078776eb3aa6247442056cb47761e9cd2c4c881c86d84c64205f6a56ef0d70b41ee7d77da02c3f4ed2f88e3896a8fefe08bdfb4deca037c687 languageName: node linkType: hard @@ -10251,13 +10404,33 @@ __metadata: languageName: node linkType: hard -"password-prompt@npm:^1.1.2": - version: 1.1.2 - resolution: "password-prompt@npm:1.1.2" +"pascal-case@npm:^3.1.2": + version: 3.1.2 + resolution: "pascal-case@npm:3.1.2" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + checksum: ba98bfd595fc91ef3d30f4243b1aee2f6ec41c53b4546bfa3039487c367abaa182471dcfc830a1f9e1a0df00c14a370514fa2b3a1aacc68b15a460c31116873e + languageName: node + linkType: hard + +"password-prompt@npm:^1.1.3": + version: 1.1.3 + resolution: "password-prompt@npm:1.1.3" + dependencies: + ansi-escapes: ^4.3.2 + cross-spawn: ^7.0.3 + checksum: 9a5fdbd7360db896809704c141acfe9258450a9982c4c177b82a1e6c69d204800cdab6064abac6736bd7d31142c80108deedf4484146594747cb3ce776816e97 + languageName: node + linkType: hard + +"path-case@npm:^3.0.4": + version: 3.0.4 + resolution: "path-case@npm:3.0.4" dependencies: - ansi-escapes: ^3.1.0 - cross-spawn: ^6.0.5 - checksum: 4763ec1b48cb311d60df37186e31f1b85ec3249a21cc17bbf8407d66c5b55cffe34b4eb529ebd044ed4ced7f3ea3fad744fe15e30a5de31645433e94cd444266 + dot-case: ^3.0.4 + tslib: ^2.0.3 + checksum: 61de0526222629f65038a66f63330dd22d5b54014ded6636283e1d15364da38b3cf29e4433aa3f9d8b0dba407ae2b059c23b0104a34ee789944b1bc1c5c7e06d languageName: node linkType: hard @@ -10282,13 +10455,6 @@ __metadata: languageName: node linkType: hard -"path-key@npm:^2.0.0, path-key@npm:^2.0.1": - version: 2.0.1 - resolution: "path-key@npm:2.0.1" - checksum: f7ab0ad42fe3fb8c7f11d0c4f849871e28fbd8e1add65c370e422512fc5887097b9cf34d09c1747d45c942a8c1e26468d6356e2df3f740bf177ab8ca7301ebfd - languageName: node - linkType: hard - "path-key@npm:^3.0.0, path-key@npm:^3.1.0": version: 3.1.1 resolution: "path-key@npm:3.1.1" @@ -10595,27 +10761,6 @@ __metadata: languageName: node linkType: hard -"qqjs@npm:^0.3.11": - version: 0.3.11 - resolution: "qqjs@npm:0.3.11" - dependencies: - chalk: ^2.4.1 - debug: ^4.1.1 - execa: ^0.10.0 - fs-extra: ^6.0.1 - get-stream: ^5.1.0 - glob: ^7.1.2 - globby: ^10.0.1 - http-call: ^5.1.2 - load-json-file: ^6.2.0 - pkg-dir: ^4.2.0 - tar-fs: ^2.0.0 - tmp: ^0.1.0 - write-json-file: ^4.1.1 - checksum: 7962df855b7a0405550ae39beb5c133574a11db475635d4fb6311c469d83cf9cae03efa4c8a0e02b82a4cae9d7bec072383354249f12ab136dc8590e57a40dbd - languageName: node - linkType: hard - "qs@npm:~6.5.2": version: 6.5.3 resolution: "qs@npm:6.5.3" @@ -10758,7 +10903,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": +"readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": version: 3.6.2 resolution: "readable-stream@npm:3.6.2" dependencies: @@ -10914,6 +11059,13 @@ __metadata: languageName: node linkType: hard +"resolve-alpn@npm:^1.0.0": + version: 1.2.1 + resolution: "resolve-alpn@npm:1.2.1" + checksum: f558071fcb2c60b04054c99aebd572a2af97ef64128d59bef7ab73bd50d896a222a056de40ffc545b633d99b304c259ea9d0c06830d5c867c34f0bfa60b8eae0 + languageName: node + linkType: hard + "resolve-cwd@npm:^3.0.0": version: 3.0.0 resolution: "resolve-cwd@npm:3.0.0" @@ -10970,6 +11122,15 @@ __metadata: languageName: node linkType: hard +"responselike@npm:^2.0.0": + version: 2.0.1 + resolution: "responselike@npm:2.0.1" + dependencies: + lowercase-keys: ^2.0.0 + checksum: b122535466e9c97b55e69c7f18e2be0ce3823c5d47ee8de0d9c0b114aa55741c6db8bfbfce3766a94d1272e61bfb1ebf0a15e9310ac5629fbb7446a861b4fd3a + languageName: node + linkType: hard + "restore-cursor@npm:^3.1.0": version: 3.1.0 resolution: "restore-cursor@npm:3.1.0" @@ -10980,6 +11141,13 @@ __metadata: languageName: node linkType: hard +"retry@npm:0.13.1": + version: 0.13.1 + resolution: "retry@npm:0.13.1" + checksum: 47c4d5be674f7c13eee4cfe927345023972197dbbdfba5d3af7e461d13b44de1bfd663bfc80d2f601f8ef3fc8164c16dd99655a221921954a65d044a2fc1233b + languageName: node + linkType: hard + "retry@npm:^0.12.0": version: 0.12.0 resolution: "retry@npm:0.12.0" @@ -11008,7 +11176,7 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:^2.6.1, rimraf@npm:^2.6.3": +"rimraf@npm:^2.6.1": version: 2.7.1 resolution: "rimraf@npm:2.7.1" dependencies: @@ -11046,7 +11214,7 @@ __metadata: languageName: node linkType: hard -"rxjs@npm:^7.0.0, rxjs@npm:^7.5.1, rxjs@npm:^7.5.4, rxjs@npm:^7.5.5": +"rxjs@npm:^7.5.1, rxjs@npm:^7.5.4, rxjs@npm:^7.5.5": version: 7.8.1 resolution: "rxjs@npm:7.8.1" dependencies: @@ -11124,7 +11292,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.5.0, semver@npm:^5.7.1": +"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.7.1": version: 5.7.2 resolution: "semver@npm:5.7.2" bin: @@ -11133,14 +11301,14 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.x, semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.1.3, semver@npm:^7.2.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.0, semver@npm:^7.5.3, semver@npm:^7.5.4": - version: 7.5.4 - resolution: "semver@npm:7.5.4" +"semver@npm:7.x, semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.1.3, semver@npm:^7.2.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.0, semver@npm:^7.6.0": + version: 7.6.0 + resolution: "semver@npm:7.6.0" dependencies: lru-cache: ^6.0.0 bin: semver: bin/semver.js - checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3 + checksum: 7427f05b70786c696640edc29fdd4bc33b2acf3bbe1740b955029044f80575fc664e1a512e4113c3af21e767154a94b4aa214bf6cd6e42a1f6dba5914e0b208c languageName: node linkType: hard @@ -11153,6 +11321,17 @@ __metadata: languageName: node linkType: hard +"sentence-case@npm:^3.0.4": + version: 3.0.4 + resolution: "sentence-case@npm:3.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + upper-case-first: ^2.0.2 + checksum: 3cfe6c0143e649132365695706702d7f729f484fa7b25f43435876efe7af2478243eefb052bacbcce10babf9319fd6b5b6bc59b94c80a1c819bcbb40651465d5 + languageName: node + linkType: hard + "set-blocking@npm:^2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" @@ -11160,15 +11339,6 @@ __metadata: languageName: node linkType: hard -"shebang-command@npm:^1.2.0": - version: 1.2.0 - resolution: "shebang-command@npm:1.2.0" - dependencies: - shebang-regex: ^1.0.0 - checksum: 9eed1750301e622961ba5d588af2212505e96770ec376a37ab678f965795e995ade7ed44910f5d3d3cb5e10165a1847f52d3348c64e146b8be922f7707958908 - languageName: node - linkType: hard - "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -11178,13 +11348,6 @@ __metadata: languageName: node linkType: hard -"shebang-regex@npm:^1.0.0": - version: 1.0.0 - resolution: "shebang-regex@npm:1.0.0" - checksum: 404c5a752cd40f94591dfd9346da40a735a05139dac890ffc229afba610854d8799aaa52f87f7e0c94c5007f2c6af55bdcaeb584b56691926c5eaf41dc8f1372 - languageName: node - linkType: hard - "shebang-regex@npm:^3.0.0": version: 3.0.0 resolution: "shebang-regex@npm:3.0.0" @@ -11192,13 +11355,6 @@ __metadata: languageName: node linkType: hard -"shell-quote@npm:^1.7.3": - version: 1.8.1 - resolution: "shell-quote@npm:1.8.1" - checksum: 5f01201f4ef504d4c6a9d0d283fa17075f6770bfbe4c5850b074974c68062f37929ca61700d95ad2ac8822e14e8c4b990ca0e6e9272e64befd74ce5e19f0736b - languageName: node - linkType: hard - "shelljs@npm:^0.8.5": version: 0.8.5 resolution: "shelljs@npm:0.8.5" @@ -11250,6 +11406,15 @@ __metadata: languageName: node linkType: hard +"simple-swizzle@npm:^0.2.2": + version: 0.2.2 + resolution: "simple-swizzle@npm:0.2.2" + dependencies: + is-arrayish: ^0.3.1 + checksum: a7f3f2ab5c76c4472d5c578df892e857323e452d9f392e1b5cf74b74db66e6294a1e1b8b390b519fa1b96b5b613f2a37db6cffef52c3f1f8f3c5ea64eb2d54c0 + languageName: node + linkType: hard + "sisteransi@npm:^1.0.5": version: 1.0.5 resolution: "sisteransi@npm:1.0.5" @@ -11300,6 +11465,16 @@ __metadata: languageName: node linkType: hard +"snake-case@npm:^3.0.4": + version: 3.0.4 + resolution: "snake-case@npm:3.0.4" + dependencies: + dot-case: ^3.0.4 + tslib: ^2.0.3 + checksum: 0a7a79900bbb36f8aaa922cf111702a3647ac6165736d5dc96d3ef367efc50465cac70c53cd172c382b022dac72ec91710608e5393de71f76d7142e6fd80e8a3 + languageName: node + linkType: hard + "socks-proxy-agent@npm:^6.0.0": version: 6.2.1 resolution: "socks-proxy-agent@npm:6.2.1" @@ -11332,7 +11507,7 @@ __metadata: languageName: node linkType: hard -"sort-keys@npm:^4.0.0, sort-keys@npm:^4.2.0": +"sort-keys@npm:^4.2.0": version: 4.2.0 resolution: "sort-keys@npm:4.2.0" dependencies: @@ -11341,6 +11516,30 @@ __metadata: languageName: node linkType: hard +"sort-object-keys@npm:^1.1.3": + version: 1.1.3 + resolution: "sort-object-keys@npm:1.1.3" + checksum: abea944d6722a1710a1aa6e4f9509da085d93d5fc0db23947cb411eedc7731f80022ce8fa68ed83a53dd2ac7441fcf72a3f38c09b3d9bbc4ff80546aa2e151ad + languageName: node + linkType: hard + +"sort-package-json@npm:^2.8.0": + version: 2.8.0 + resolution: "sort-package-json@npm:2.8.0" + dependencies: + detect-indent: ^7.0.1 + detect-newline: ^4.0.0 + get-stdin: ^9.0.0 + git-hooks-list: ^3.0.0 + globby: ^13.1.2 + is-plain-obj: ^4.1.0 + sort-object-keys: ^1.1.3 + bin: + sort-package-json: cli.js + checksum: 8739392ae4f5f6aa07948e317e43c62e2165fa815175c4678b1eef815f27d93846262113a16f17c10f12856f72222c312a8a5ed2dcae60265bfbacee64967312 + languageName: node + linkType: hard + "source-map-support@npm:0.5.13": version: 0.5.13 resolution: "source-map-support@npm:0.5.13" @@ -11368,13 +11567,6 @@ __metadata: languageName: node linkType: hard -"spawn-command@npm:^0.0.2-1": - version: 0.0.2-1 - resolution: "spawn-command@npm:0.0.2-1" - checksum: 2cac8519332193d1ed37d57298c4a1f73095e9edd20440fbab4aa47f531da83831734f2b51c44bb42b2747bf3485dec3fa2b0a1003f74c67561f2636622e328b - languageName: node - linkType: hard - "spawn-wrap@npm:^2.0.0": version: 2.0.0 resolution: "spawn-wrap@npm:2.0.0" @@ -11515,27 +11707,6 @@ __metadata: languageName: node linkType: hard -"string-width@npm:^1.0.1": - version: 1.0.2 - resolution: "string-width@npm:1.0.2" - dependencies: - code-point-at: ^1.0.0 - is-fullwidth-code-point: ^1.0.0 - strip-ansi: ^3.0.0 - checksum: 5c79439e95bc3bd7233a332c5f5926ab2ee90b23816ed4faa380ce3b2576d7800b0a5bb15ae88ed28737acc7ea06a518c2eef39142dd727adad0e45c776cd37e - languageName: node - linkType: hard - -"string-width@npm:^2.0.0": - version: 2.1.1 - resolution: "string-width@npm:2.1.1" - dependencies: - is-fullwidth-code-point: ^2.0.0 - strip-ansi: ^4.0.0 - checksum: d6173abe088c615c8dffaf3861dc5d5906ed3dc2d6fd67ff2bd2e2b5dce7fd683c5240699cf0b1b8aa679a3b3bd6b28b5053c824cb89b813d7f6541d8f89064a - languageName: node - linkType: hard - "string-width@npm:^5.0.1, string-width@npm:^5.1.2": version: 5.1.2 resolution: "string-width@npm:5.1.2" @@ -11607,24 +11778,6 @@ __metadata: languageName: node linkType: hard -"strip-ansi@npm:^3.0.0, strip-ansi@npm:^3.0.1": - version: 3.0.1 - resolution: "strip-ansi@npm:3.0.1" - dependencies: - ansi-regex: ^2.0.0 - checksum: 9b974de611ce5075c70629c00fa98c46144043db92ae17748fb780f706f7a789e9989fd10597b7c2053ae8d1513fd707816a91f1879b2f71e6ac0b6a863db465 - languageName: node - linkType: hard - -"strip-ansi@npm:^4.0.0": - version: 4.0.0 - resolution: "strip-ansi@npm:4.0.0" - dependencies: - ansi-regex: ^3.0.0 - checksum: d9186e6c0cf78f25274f6750ee5e4a5725fb91b70fdd79aa5fe648eab092a0ec5b9621b22d69d4534a56319f75d8944efbd84e3afa8d4ad1b9a9491f12c84eca - languageName: node - linkType: hard - "strip-ansi@npm:^7.0.1": version: 7.1.0 resolution: "strip-ansi@npm:7.1.0" @@ -11676,13 +11829,6 @@ __metadata: languageName: node linkType: hard -"strip-eof@npm:^1.0.0": - version: 1.0.0 - resolution: "strip-eof@npm:1.0.0" - checksum: 40bc8ddd7e072f8ba0c2d6d05267b4e0a4800898c3435b5fb5f5a21e6e47dfaff18467e7aa0d1844bb5d6274c3097246595841fbfeb317e541974ee992cac506 - languageName: node - linkType: hard - "strip-final-newline@npm:^2.0.0": version: 2.0.0 resolution: "strip-final-newline@npm:2.0.0" @@ -11729,13 +11875,6 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^2.0.0": - version: 2.0.0 - resolution: "supports-color@npm:2.0.0" - checksum: 602538c5812b9006404370b5a4b885d3e2a1f6567d314f8b4a41974ffe7d08e525bf92ae0f9c7030e3b4c78e4e34ace55d6a67a74f1571bc205959f5972f88f0 - languageName: node - linkType: hard - "supports-color@npm:^5.3.0": version: 5.5.0 resolution: "supports-color@npm:5.5.0" @@ -11754,7 +11893,7 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^8.0.0, supports-color@npm:^8.1.0, supports-color@npm:^8.1.1": +"supports-color@npm:^8.0.0, supports-color@npm:^8.1.1": version: 8.1.1 resolution: "supports-color@npm:8.1.1" dependencies: @@ -11780,16 +11919,6 @@ __metadata: languageName: node linkType: hard -"taketalk@npm:^1.0.0": - version: 1.0.0 - resolution: "taketalk@npm:1.0.0" - dependencies: - get-stdin: ^4.0.1 - minimist: ^1.1.0 - checksum: b9a6ae2d6e41573a18958b7ac76ab89a6f703a3abfb24fc1613171bece8b6bb76e68fa39da6077ed6cac22d0d39530e40e9078aea93f3cf9285f48b05e046a2b - languageName: node - linkType: hard - "tapable@npm:^0.1.8": version: 0.1.10 resolution: "tapable@npm:0.1.10" @@ -11797,31 +11926,6 @@ __metadata: languageName: node linkType: hard -"tar-fs@npm:^2.0.0": - version: 2.1.1 - resolution: "tar-fs@npm:2.1.1" - dependencies: - chownr: ^1.1.1 - mkdirp-classic: ^0.5.2 - pump: ^3.0.0 - tar-stream: ^2.1.4 - checksum: f5b9a70059f5b2969e65f037b4e4da2daf0fa762d3d232ffd96e819e3f94665dbbbe62f76f084f1acb4dbdcce16c6e4dac08d12ffc6d24b8d76720f4d9cf032d - languageName: node - linkType: hard - -"tar-stream@npm:^2.1.4": - version: 2.2.0 - resolution: "tar-stream@npm:2.2.0" - dependencies: - bl: ^4.0.3 - end-of-stream: ^1.4.1 - fs-constants: ^1.0.0 - inherits: ^2.0.3 - readable-stream: ^3.1.1 - checksum: 699831a8b97666ef50021c767f84924cfee21c142c2eb0e79c63254e140e6408d6d55a065a2992548e72b06de39237ef2b802b99e3ece93ca3904a37622a66f3 - languageName: node - linkType: hard - "tar@npm:^6.0.2, tar@npm:^6.1.0, tar@npm:^6.1.11, tar@npm:^6.1.2": version: 6.1.15 resolution: "tar@npm:6.1.15" @@ -11919,15 +12023,6 @@ __metadata: languageName: node linkType: hard -"tmp@npm:^0.1.0": - version: 0.1.0 - resolution: "tmp@npm:0.1.0" - dependencies: - rimraf: ^2.6.3 - checksum: 6bab8431de9d245d4264bd8cd6bb216f9d22f179f935dada92a11d1315572c8eb7c3334201e00594b4708608bd536fad3a63bfb037e7804d827d66aa53a1afcd - languageName: node - linkType: hard - "tmp@npm:^0.2.0": version: 0.2.1 resolution: "tmp@npm:0.2.1" @@ -12090,7 +12185,7 @@ __metadata: languageName: node linkType: hard -"ts-node@npm:^10.4.0, ts-node@npm:^10.9.1": +"ts-node@npm:^10.4.0": version: 10.9.1 resolution: "ts-node@npm:10.9.1" dependencies: @@ -12128,6 +12223,44 @@ __metadata: languageName: node linkType: hard +"ts-node@npm:^10.9.2": + version: 10.9.2 + resolution: "ts-node@npm:10.9.2" + dependencies: + "@cspotcode/source-map-support": ^0.8.0 + "@tsconfig/node10": ^1.0.7 + "@tsconfig/node12": ^1.0.7 + "@tsconfig/node14": ^1.0.0 + "@tsconfig/node16": ^1.0.2 + acorn: ^8.4.1 + acorn-walk: ^8.1.1 + arg: ^4.1.0 + create-require: ^1.1.0 + diff: ^4.0.1 + make-error: ^1.1.1 + v8-compile-cache-lib: ^3.0.1 + yn: 3.1.1 + peerDependencies: + "@swc/core": ">=1.2.50" + "@swc/wasm": ">=1.2.50" + "@types/node": "*" + typescript: ">=2.7" + peerDependenciesMeta: + "@swc/core": + optional: true + "@swc/wasm": + optional: true + bin: + ts-node: dist/bin.js + ts-node-cwd: dist/bin-cwd.js + ts-node-esm: dist/bin-esm.js + ts-node-script: dist/bin-script.js + ts-node-transpile-only: dist/bin-transpile.js + ts-script: dist/bin-script-deprecated.js + checksum: fde256c9073969e234526e2cfead42591b9a2aec5222bac154b0de2fa9e4ceb30efcd717ee8bc785a56f3a119bdd5aa27b333d9dbec94ed254bd26f8944c67ac + languageName: node + linkType: hard + "tsconfig-paths@npm:^3.14.1": version: 3.14.2 resolution: "tsconfig-paths@npm:3.14.2" @@ -12159,10 +12292,10 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2, tslib@npm:^2.1.0, tslib@npm:^2.3.1, tslib@npm:^2.4.1, tslib@npm:^2.5.0": - version: 2.6.0 - resolution: "tslib@npm:2.6.0" - checksum: c01066038f950016a18106ddeca4649b4d76caa76ec5a31e2a26e10586a59fceb4ee45e96719bf6c715648e7c14085a81fee5c62f7e9ebee68e77a5396e5538f +"tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.1, tslib@npm:^2.5.0": + version: 2.6.2 + resolution: "tslib@npm:2.6.2" + checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad languageName: node linkType: hard @@ -12280,16 +12413,7 @@ __metadata: languageName: node linkType: hard -"typedarray-to-buffer@npm:^3.1.5": - version: 3.1.5 - resolution: "typedarray-to-buffer@npm:3.1.5" - dependencies: - is-typedarray: ^1.0.0 - checksum: 99c11aaa8f45189fcfba6b8a4825fd684a321caa9bd7a76a27cf0c7732c174d198b99f449c52c3818107430b5f41c0ccbbfb75cb2ee3ca4a9451710986d61a60 - languageName: node - linkType: hard - -"typescript@npm:^4.7.3, typescript@npm:^4.7.4": +"typescript@npm:^4.7.3": version: 4.9.5 resolution: "typescript@npm:4.9.5" bin: @@ -12299,7 +12423,17 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@^4.7.3#~builtin, typescript@patch:typescript@^4.7.4#~builtin": +"typescript@npm:^5.4.2": + version: 5.4.2 + resolution: "typescript@npm:5.4.2" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 96d80fde25a09bcb04d399082fb27a808a9e17c2111e43849d2aafbd642d835e4f4ef0de09b0ba795ec2a700be6c4c2c3f62bf4660c05404c948727b5bbfb32a + languageName: node + linkType: hard + +"typescript@patch:typescript@^4.7.3#~builtin": version: 4.9.5 resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin::version=4.9.5&hash=a1c5e5" bin: @@ -12309,6 +12443,16 @@ __metadata: languageName: node linkType: hard +"typescript@patch:typescript@^5.4.2#~builtin": + version: 5.4.2 + resolution: "typescript@patch:typescript@npm%3A5.4.2#~builtin::version=5.4.2&hash=a1c5e5" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: c1b669146bca5529873aae60870e243fa8140c85f57ca32c42f898f586d73ce4a6b4f6bb02ae312729e214d7f5859a0c70da3e527a116fdf5ad00c9fc733ecc6 + languageName: node + linkType: hard + "unbox-primitive@npm:^1.0.2": version: 1.0.2 resolution: "unbox-primitive@npm:1.0.2" @@ -12403,13 +12547,6 @@ __metadata: languageName: node linkType: hard -"universalify@npm:^2.0.0": - version: 2.0.0 - resolution: "universalify@npm:2.0.0" - checksum: 2406a4edf4a8830aa6813278bab1f953a8e40f2f63a37873ffa9a3bc8f9745d06cc8e88f3572cb899b7e509013f7f6fcc3e37e8a6d914167a5381d8440518c44 - languageName: node - linkType: hard - "untildify@npm:^4.0.0": version: 4.0.0 resolution: "untildify@npm:4.0.0" @@ -12431,6 +12568,24 @@ __metadata: languageName: node linkType: hard +"upper-case-first@npm:^2.0.2": + version: 2.0.2 + resolution: "upper-case-first@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 4487db4701effe3b54ced4b3e4aa4d9ab06c548f97244d04aafb642eedf96a76d5a03cf5f38f10f415531d5792d1ac6e1b50f2a76984dc6964ad530f12876409 + languageName: node + linkType: hard + +"upper-case@npm:^2.0.2": + version: 2.0.2 + resolution: "upper-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 508723a2b03ab90cf1d6b7e0397513980fab821cbe79c87341d0e96cedefadf0d85f9d71eac24ab23f526a041d585a575cfca120a9f920e44eb4f8a7cf89121c + languageName: node + linkType: hard + "uri-js@npm:^4.2.2": version: 4.4.1 resolution: "uri-js@npm:4.4.1" @@ -12682,17 +12837,6 @@ __metadata: languageName: node linkType: hard -"which@npm:^1.2.9": - version: 1.3.1 - resolution: "which@npm:1.3.1" - dependencies: - isexe: ^2.0.0 - bin: - which: ./bin/which - checksum: f2e185c6242244b8426c9df1510e86629192d93c1a986a7d2a591f2c24869e7ffd03d6dac07ca863b2e4c06f59a4cc9916c585b72ee9fa1aa609d0124df15e04 - languageName: node - linkType: hard - "which@npm:^2.0.1, which@npm:^2.0.2": version: 2.0.2 resolution: "which@npm:2.0.2" @@ -12751,16 +12895,6 @@ __metadata: languageName: node linkType: hard -"wrap-ansi@npm:^2.0.0": - version: 2.1.0 - resolution: "wrap-ansi@npm:2.1.0" - dependencies: - string-width: ^1.0.1 - strip-ansi: ^3.0.1 - checksum: 2dacd4b3636f7a53ee13d4d0fe7fa2ed9ad81e9967e17231924ea88a286ec4619a78288de8d41881ee483f4449ab2c0287cde8154ba1bd0126c10271101b2ee3 - languageName: node - linkType: hard - "wrap-ansi@npm:^6.2.0": version: 6.2.0 resolution: "wrap-ansi@npm:6.2.0" @@ -12790,18 +12924,6 @@ __metadata: languageName: node linkType: hard -"write-file-atomic@npm:^3.0.0": - version: 3.0.3 - resolution: "write-file-atomic@npm:3.0.3" - dependencies: - imurmurhash: ^0.1.4 - is-typedarray: ^1.0.0 - signal-exit: ^3.0.2 - typedarray-to-buffer: ^3.1.5 - checksum: c55b24617cc61c3a4379f425fc62a386cc51916a9b9d993f39734d005a09d5a4bb748bc251f1304e7abd71d0a26d339996c275955f527a131b1dcded67878280 - languageName: node - linkType: hard - "write-file-atomic@npm:^4.0.0, write-file-atomic@npm:^4.0.1": version: 4.0.2 resolution: "write-file-atomic@npm:4.0.2" @@ -12812,20 +12934,6 @@ __metadata: languageName: node linkType: hard -"write-json-file@npm:^4.1.1": - version: 4.3.0 - resolution: "write-json-file@npm:4.3.0" - dependencies: - detect-indent: ^6.0.0 - graceful-fs: ^4.1.15 - is-plain-obj: ^2.0.0 - make-dir: ^3.0.0 - sort-keys: ^4.0.0 - write-file-atomic: ^3.0.0 - checksum: 33908c591923dc273e6574e7c0e2df157acfcf498e3a87c5615ced006a465c4058877df6abce6fc1acd2844fa3cf4518ace4a34d5d82ab28bcf896317ba1db6f - languageName: node - linkType: hard - "ws@npm:^7.3.1": version: 7.5.9 resolution: "ws@npm:7.5.9" @@ -12968,7 +13076,7 @@ __metadata: languageName: node linkType: hard -"yeoman-environment@npm:^3.9.1": +"yeoman-environment@npm:^3.15.1": version: 3.19.3 resolution: "yeoman-environment@npm:3.19.3" dependencies: @@ -13015,9 +13123,9 @@ __metadata: languageName: node linkType: hard -"yeoman-generator@npm:^5.6.1": - version: 5.9.0 - resolution: "yeoman-generator@npm:5.9.0" +"yeoman-generator@npm:^5.8.0": + version: 5.10.0 + resolution: "yeoman-generator@npm:5.10.0" dependencies: chalk: ^4.1.0 dargs: ^7.0.0 @@ -13039,7 +13147,7 @@ __metadata: peerDependenciesMeta: yeoman-environment: optional: true - checksum: f9e76e21af33acf9b8421f889fccac45e6f335f7a3b8d6741f5efc0eb2f950e9e04a5cbb20897e0084fd8a52a4a12a8221200b1bd40b948c94e1f32204019fed + checksum: 73ffc1fb0390e3b528283585763b67cf9a1cbec8445ab47076e3165ae469f1e264601c8e62a8167a6c7b5defddd6e0eb4fe0c8d55ea589d827821bbf92edbd15 languageName: node linkType: hard @@ -13063,22 +13171,3 @@ __metadata: checksum: 2cac84540f65c64ccc1683c267edce396b26b1e931aa429660aefac8fbe0188167b7aee815a3c22fa59a28a58d898d1a2b1825048f834d8d629f4c2a5d443801 languageName: node linkType: hard - -"yosay@npm:^2.0.2": - version: 2.0.2 - resolution: "yosay@npm:2.0.2" - dependencies: - ansi-regex: ^2.0.0 - ansi-styles: ^3.0.0 - chalk: ^1.0.0 - cli-boxes: ^1.0.0 - pad-component: 0.0.1 - string-width: ^2.0.0 - strip-ansi: ^3.0.0 - taketalk: ^1.0.0 - wrap-ansi: ^2.0.0 - bin: - yosay: cli.js - checksum: 7e0220ef1321a9f0db4632fb564ff0bad66523bd22bb5cd6435886145bba284a4c1f651f51d629f4a904c79b0bbf13940fee1e127746f9f20b3e5eae8336c6cb - languageName: node - linkType: hard From 391208db63f06d56381fcf4c43b564b558eb9229 Mon Sep 17 00:00:00 2001 From: Guillaume Pierson Date: Thu, 14 Mar 2024 15:55:59 +0100 Subject: [PATCH 2/7] Fix lint --- jest.config.js => jest.config.cjs | 0 .../{envvar.inline.isolated.js => envvar.inline.isolated.cjs} | 0 src/services/container/kubernetes/client.ts | 1 - 3 files changed, 1 deletion(-) rename jest.config.js => jest.config.cjs (100%) rename src/examples/{envvar.inline.isolated.js => envvar.inline.isolated.cjs} (100%) diff --git a/jest.config.js b/jest.config.cjs similarity index 100% rename from jest.config.js rename to jest.config.cjs diff --git a/src/examples/envvar.inline.isolated.js b/src/examples/envvar.inline.isolated.cjs similarity index 100% rename from src/examples/envvar.inline.isolated.js rename to src/examples/envvar.inline.isolated.cjs diff --git a/src/services/container/kubernetes/client.ts b/src/services/container/kubernetes/client.ts index 7ce5b7d..465334c 100644 --- a/src/services/container/kubernetes/client.ts +++ b/src/services/container/kubernetes/client.ts @@ -1,7 +1,6 @@ import * as kube from '@kubernetes/client-node'; import axios from 'axios'; import https from 'node:https'; -import request from 'request'; export const kc = new kube.KubeConfig(); export let kubeClient: kube.KubernetesObjectApi; export let kubeApi: kube.CoreV1Api; From de49443473e26fe11ad821f5c9a351623658d1ca Mon Sep 17 00:00:00 2001 From: Guillaume Pierson Date: Thu, 14 Mar 2024 15:59:35 +0100 Subject: [PATCH 3/7] Fix lint --- .eslintrc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.eslintrc b/.eslintrc index 47dc827..0181567 100644 --- a/.eslintrc +++ b/.eslintrc @@ -56,6 +56,7 @@ "unicorn/consistent-function-scoping": "off", "unicorn/prefer-top-level-await": "off", "no-promise-executor-return": "off", - "node/no-extraneous-require": "off" + "node/no-extraneous-require": "off", + "node/shebang": "off" } } From 2b97a1daf37e7472be90f9336cda954d438239cf Mon Sep 17 00:00:00 2001 From: Guillaume Pierson Date: Thu, 14 Mar 2024 17:22:55 +0100 Subject: [PATCH 4/7] Fix tests --- .eslintrc | 7 - bin/run | 5 + e2e/.greenframe.fullstack.broken.yml | 2 +- e2e/.greenframe.fullstack.k8s.yml | 2 +- e2e/.greenframe.fullstack.multiple.yml | 2 +- e2e/.greenframe.fullstack.yml | 2 +- e2e/.greenframe.single.adblock.yml | 2 +- e2e/.greenframe.single.multiple.distant.yml | 2 +- .../{analyze.spec.js => analyze.spec.mjs} | 6 +- .../{open.spec.js => open.spec.mjs} | 6 +- .../{analyze.spec.js => analyze.spec.mjs} | 11 +- e2e/local/{open.spec.js => open.spec.mjs} | 5 +- jest.config.cjs | 11 - package.json | 9 +- src/commands/update.ts | 4 +- .../__tests__/getAverageMilestones.ts | 1 + .../stat-tools/__tests__/getAverageStats.ts | 4 +- .../stat-tools/__tests__/getConsumption.ts | 1 + .../docker/__tests__/computeStats.test.ts | 1 + .../providers/__tests__/docker.test.ts | 1 + .../providers/__tests__/kubernetes.test.ts | 1 + src/model/stores/__tests__/statStore.test.ts | 7 +- .../stores/__tests__/timeframeStore.test.ts | 1 + src/services/__tests__/parseConfigFile.ts | 1 + src/services/__tests__/readFileToString.ts | 25 +- .../__tests__/execScenarioContainer.ts | 27 +- .../container/__tests__/getContainerStats.ts | 34 +- .../container/execScenarioContainer.ts | 4 +- .../mergePodStatsWithNetworkStats.ts | 3 +- src/services/detectExecutablePath.ts | 4 +- src/services/docker/index.ts | 4 +- src/services/git/__tests__/index.ts | 37 +- src/services/git/__tests__/utils.ts | 50 +- src/services/git/utils.ts | 4 +- src/services/parseConfigFile.ts | 4 +- src/services/readFileToString.ts | 6 +- tsconfig.json | 3 +- vitest.config.ts | 8 + yarn.lock | 2473 +++++++---------- 39 files changed, 1135 insertions(+), 1645 deletions(-) create mode 100644 bin/run rename e2e/greenframe.io/{analyze.spec.js => analyze.spec.mjs} (98%) rename e2e/greenframe.io/{open.spec.js => open.spec.mjs} (94%) rename e2e/local/{analyze.spec.js => analyze.spec.mjs} (97%) rename e2e/local/{open.spec.js => open.spec.mjs} (90%) delete mode 100644 jest.config.cjs create mode 100644 vitest.config.ts diff --git a/.eslintrc b/.eslintrc index 0181567..ec20a5c 100644 --- a/.eslintrc +++ b/.eslintrc @@ -14,16 +14,9 @@ "eslint:recommended", "plugin:prettier/recommended", "prettier", - "plugin:jest/recommended", - "plugin:jest/style", "plugin:@typescript-eslint/recommended" ], "plugins": ["prettier", "@typescript-eslint"], - "settings": { - "jest": { - "version": 26 - } - }, "rules": { "no-return-await": "error", "unicorn/filename-case": "off", diff --git a/bin/run b/bin/run new file mode 100644 index 0000000..176d2af --- /dev/null +++ b/bin/run @@ -0,0 +1,5 @@ +#!/usr/bin/env node + +import { execute } from '@oclif/core'; + +await execute({ dir: import.meta.url }); diff --git a/e2e/.greenframe.fullstack.broken.yml b/e2e/.greenframe.fullstack.broken.yml index 2ca36fa..5588678 100644 --- a/e2e/.greenframe.fullstack.broken.yml +++ b/e2e/.greenframe.fullstack.broken.yml @@ -1,4 +1,4 @@ -scenario: '../../src/examples/greenframe.js' +scenario: '../../src/examples/greenframe.cjs' baseURL: 'https://greenframe.io' samples: 2 projectName: 'GreenFrame' diff --git a/e2e/.greenframe.fullstack.k8s.yml b/e2e/.greenframe.fullstack.k8s.yml index 336494f..334986d 100644 --- a/e2e/.greenframe.fullstack.k8s.yml +++ b/e2e/.greenframe.fullstack.k8s.yml @@ -1,4 +1,4 @@ -scenario: '../src/examples/greenframe.js' +scenario: '../src/examples/greenframe.cjs' baseURL: 'https://greenframe.io' samples: 2 projectName: 'GreenFrame' diff --git a/e2e/.greenframe.fullstack.multiple.yml b/e2e/.greenframe.fullstack.multiple.yml index 486c7e9..ed4d1c6 100644 --- a/e2e/.greenframe.fullstack.multiple.yml +++ b/e2e/.greenframe.fullstack.multiple.yml @@ -1,5 +1,5 @@ scenarios: - - path: '../src/examples/greenframe.js' + - path: '../src/examples/greenframe.cjs' name: 'Scenario 1' threshold: 0.1 - path: '../src/examples/greenframe2.js' diff --git a/e2e/.greenframe.fullstack.yml b/e2e/.greenframe.fullstack.yml index 6a7e6d3..ea42013 100644 --- a/e2e/.greenframe.fullstack.yml +++ b/e2e/.greenframe.fullstack.yml @@ -1,4 +1,4 @@ -scenario: '../src/examples/greenframe.js' +scenario: '../src/examples/greenframe.cjs' baseURL: 'https://greenframe.io' samples: 2 projectName: 'GreenFrame' diff --git a/e2e/.greenframe.single.adblock.yml b/e2e/.greenframe.single.adblock.yml index a656c45..cf2f082 100644 --- a/e2e/.greenframe.single.adblock.yml +++ b/e2e/.greenframe.single.adblock.yml @@ -1,4 +1,4 @@ -scenario: '../../src/examples/greenframe.js' +scenario: '../../src/examples/greenframe.cjs' baseURL: 'https://greenframe.io' samples: 2 projectName: 'GreenFrame' diff --git a/e2e/.greenframe.single.multiple.distant.yml b/e2e/.greenframe.single.multiple.distant.yml index a22a03d..32adff7 100644 --- a/e2e/.greenframe.single.multiple.distant.yml +++ b/e2e/.greenframe.single.multiple.distant.yml @@ -1,5 +1,5 @@ scenarios: - - path: '../src/examples/greenframe.js' + - path: '../src/examples/greenframe.cjs' name: 'Scenario 1' threshold: 0.1 - path: '../src/examples/greenframe2.js' diff --git a/e2e/greenframe.io/analyze.spec.js b/e2e/greenframe.io/analyze.spec.mjs similarity index 98% rename from e2e/greenframe.io/analyze.spec.js rename to e2e/greenframe.io/analyze.spec.mjs index 56c2756..19449c9 100644 --- a/e2e/greenframe.io/analyze.spec.js +++ b/e2e/greenframe.io/analyze.spec.mjs @@ -1,12 +1,12 @@ -/* eslint-disable jest/no-conditional-expect */ -import { promisify } from 'node:util'; import { exec as execSync } from 'node:child_process'; +import { promisify } from 'node:util'; +import { describe, expect, it } from 'vitest'; const exec = promisify(execSync); const BASE_COMMAND = `GREENFRAME_SECRET_TOKEN=API_TOKEN API_URL=http://localhost:3006 ./bin/run analyze`; // we need to setup a mock greenframe.io environment to enable this test -// eslint-disable-next-line jest/no-disabled-tests + describe.skip('[GREENFRAME.IO] greenframe analyze', () => { describe('single page', () => { describe('local analysis', () => { diff --git a/e2e/greenframe.io/open.spec.js b/e2e/greenframe.io/open.spec.mjs similarity index 94% rename from e2e/greenframe.io/open.spec.js rename to e2e/greenframe.io/open.spec.mjs index 9b5c016..356cb82 100644 --- a/e2e/greenframe.io/open.spec.js +++ b/e2e/greenframe.io/open.spec.mjs @@ -1,12 +1,12 @@ -/* eslint-disable jest/no-conditional-expect */ -import { promisify } from 'node:util'; import { exec as execSync } from 'node:child_process'; +import { promisify } from 'node:util'; +import { describe, expect, it } from 'vitest'; const exec = promisify(execSync); const BASE_COMMAND = `GREENFRAME_SECRET_TOKEN=API_TOKEN API_URL=http://localhost:3006 ./bin/run open`; // we need to setup a mock greenframe.io environment to enable this test -// eslint-disable-next-line jest/no-disabled-tests + describe.skip('[GREENFRAME.IO] greenframe open', () => { describe('single page', () => { it('should raise and error on non HTTPS websites', async () => { diff --git a/e2e/local/analyze.spec.js b/e2e/local/analyze.spec.mjs similarity index 97% rename from e2e/local/analyze.spec.js rename to e2e/local/analyze.spec.mjs index 0ba31ef..2cca7c6 100644 --- a/e2e/local/analyze.spec.js +++ b/e2e/local/analyze.spec.mjs @@ -1,9 +1,10 @@ -/* eslint-disable jest/no-conditional-expect */ -import { promisify } from 'node:util'; import { exec as execSync } from 'node:child_process'; +import { promisify } from 'node:util'; +import { describe, expect, it } from 'vitest'; + const exec = promisify(execSync); -const BASE_COMMAND = `./bin/run analyze`; +const BASE_COMMAND = `./bin/run.js analyze`; describe('[LOCAL] greenframe analyze', () => { describe('single page', () => { @@ -57,7 +58,7 @@ describe('[LOCAL] greenframe analyze', () => { }); // we need to setup a mock dev environment to enable this test - // eslint-disable-next-line jest/no-disabled-tests + describe.skip('full stack', () => { describe('local analysis', () => { it('should run an analysis command correctly', async () => { @@ -151,7 +152,7 @@ describe('[LOCAL] greenframe analyze', () => { }); // This is disabled because it requires a kubernetes cluster to be running while testing - // eslint-disable-next-line jest/no-disabled-tests + it.skip('should run a k8s analysis command correctly', async () => { const { error, stdout } = await exec( `${BASE_COMMAND} -C ./e2e/.greenframe.fullstack.k8s.yml` diff --git a/e2e/local/open.spec.js b/e2e/local/open.spec.mjs similarity index 90% rename from e2e/local/open.spec.js rename to e2e/local/open.spec.mjs index c9f676a..88f846d 100644 --- a/e2e/local/open.spec.js +++ b/e2e/local/open.spec.mjs @@ -1,4 +1,5 @@ import { promisify } from 'node:util'; +import { describe, expect, it } from 'vitest'; import { exec as execSync } from 'node:child_process'; const exec = promisify(execSync); @@ -6,7 +7,7 @@ const BASE_COMMAND = `./bin/run open`; // This is disabled because popping chrome in CI doesn't seem to work as-is // the test works locally though -// eslint-disable-next-line jest/no-disabled-tests + describe.skip('[LOCAL] greenframe open', () => { describe('single page', () => { it('should run correctly', async () => { @@ -21,7 +22,7 @@ describe.skip('[LOCAL] greenframe open', () => { }); }); // we need to setup a mock dev environment to enable this test - // eslint-disable-next-line jest/no-disabled-tests + describe.skip('full stack', () => { // ... }); diff --git a/jest.config.cjs b/jest.config.cjs deleted file mode 100644 index 18505e6..0000000 --- a/jest.config.cjs +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: [ - '**/e2e/*.js', - '**/e2e/*.ts', - '**/__tests__/*.js', - '**/__tests__/*.ts', - '**/?(*.)+(spec|test).+(ts|js)', - ], -}; diff --git a/package.json b/package.json index 520eadd..c0eea48 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,6 @@ "@types/env-ci": "^3.1.1", "@types/eslint": "^8.4.5", "@types/eslint-plugin-prettier": "^3.1.0", - "@types/jest": "^28.1.6", "@types/js-yaml": "^4.0.5", "@types/lodash": "^4.14.177", "@types/mathjs": "~9.3.2", @@ -52,17 +51,15 @@ "eslint-config-oclif": "^4.0.0", "eslint-config-oclif-typescript": "^1.0.2", "eslint-config-prettier": "^8.3.0", - "eslint-plugin-jest": "^25.0.5", "eslint-plugin-prettier": "^4.0.0", "eslint-plugin-unicorn": "^43.0.2", "globby": "^10.0.2", - "jest": "^28.1.3", "prettier": "^2.4.1", "trace-unhandled": "^2.0.1", - "ts-jest": "^28.0.7", "ts-node": "^10.9.2", "ts-node-dev": "^2.0.0", "typescript": "^5.4.2", + "vitest": "^1.3.1", "wait-on": "^6.0.0", "xo": "^0.52.3" }, @@ -122,9 +119,9 @@ "postpack": "rm -f oclif.manifest.json", "posttest": "eslint .", "prepack": "yarn build && oclif manifest && oclif readme", - "test-unit": "jest ./src", + "test-unit": "vitest ./src", "test-watch": "yarn test-unit --watch", - "test-e2e": "jest ./e2e --testTimeout 500000", + "test-e2e": "vitest ./e2e --testTimeout 500000", "version": "oclif readme && git add README.md", "pack": "oclif pack tarballs", "analyze": "API_URL=http://localhost:3006 APP_URL=http://localhost:3003 ./bin/run analyze", diff --git a/src/commands/update.ts b/src/commands/update.ts index f33d8a4..3325ee4 100644 --- a/src/commands/update.ts +++ b/src/commands/update.ts @@ -1,8 +1,8 @@ import { Args, Command } from '@oclif/core'; import axios from 'axios'; import { exec as execSync } from 'node:child_process'; -import util from 'node:util'; -const exec = util.promisify(execSync); +import { promisify } from 'node:util'; +const exec = promisify(execSync); class UpdateCommand extends Command { static args = { diff --git a/src/model/stat-tools/__tests__/getAverageMilestones.ts b/src/model/stat-tools/__tests__/getAverageMilestones.ts index ddaccb3..c730565 100644 --- a/src/model/stat-tools/__tests__/getAverageMilestones.ts +++ b/src/model/stat-tools/__tests__/getAverageMilestones.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from 'vitest'; import { getAverageMilestones } from '../getAverageMilestones.js'; describe('#getAverageMilestones', () => { diff --git a/src/model/stat-tools/__tests__/getAverageStats.ts b/src/model/stat-tools/__tests__/getAverageStats.ts index 0fa4641..7215413 100644 --- a/src/model/stat-tools/__tests__/getAverageStats.ts +++ b/src/model/stat-tools/__tests__/getAverageStats.ts @@ -1,5 +1,5 @@ -import { getAverageStats } from '../getAverageStats.js'; -import { addAvg, incrementalAverageStats } from '../getAverageStats.js'; +import { describe, expect, it } from 'vitest'; +import { addAvg, getAverageStats, incrementalAverageStats } from '../getAverageStats.js'; const incrementalStat = (n: any, statValue: any, boolValue: any) => { return { diff --git a/src/model/stat-tools/__tests__/getConsumption.ts b/src/model/stat-tools/__tests__/getConsumption.ts index 264d637..fc91ad9 100644 --- a/src/model/stat-tools/__tests__/getConsumption.ts +++ b/src/model/stat-tools/__tests__/getConsumption.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from 'vitest'; import { getStandardError } from '../getConsumption.js'; describe('getStandardError', () => { diff --git a/src/model/stat-tools/docker/__tests__/computeStats.test.ts b/src/model/stat-tools/docker/__tests__/computeStats.test.ts index 733d5b8..ff273b7 100644 --- a/src/model/stat-tools/docker/__tests__/computeStats.test.ts +++ b/src/model/stat-tools/docker/__tests__/computeStats.test.ts @@ -1,3 +1,4 @@ +import { expect, test } from 'vitest'; import { CONTAINER_TYPES } from '../../../../constants.js'; import { GenericStat } from '../../../../types.js'; import { computeStats } from '../computeStats.js'; diff --git a/src/model/stat-tools/providers/__tests__/docker.test.ts b/src/model/stat-tools/providers/__tests__/docker.test.ts index 0ca45cb..6f0e15a 100644 --- a/src/model/stat-tools/providers/__tests__/docker.test.ts +++ b/src/model/stat-tools/providers/__tests__/docker.test.ts @@ -1,3 +1,4 @@ +import { expect, test } from 'vitest'; import type { DockerStatsJSON } from '../../../../types.js'; import { docker, sumBlkioStats } from '../docker.js'; diff --git a/src/model/stat-tools/providers/__tests__/kubernetes.test.ts b/src/model/stat-tools/providers/__tests__/kubernetes.test.ts index 744dd6f..dafb82c 100644 --- a/src/model/stat-tools/providers/__tests__/kubernetes.test.ts +++ b/src/model/stat-tools/providers/__tests__/kubernetes.test.ts @@ -1,3 +1,4 @@ +import { expect, test } from 'vitest'; import type { CadvisorContainerStats } from '../../../../types.js'; import { kubernetes } from '../kubernetes.js'; diff --git a/src/model/stores/__tests__/statStore.test.ts b/src/model/stores/__tests__/statStore.test.ts index 3a953fe..1dcb5ad 100644 --- a/src/model/stores/__tests__/statStore.test.ts +++ b/src/model/stores/__tests__/statStore.test.ts @@ -1,7 +1,8 @@ -import { createStatStore, getComputedStat, getContainers } from '../statStore.js'; -import type { StatStore } from '../statStore.js'; -import { ComputedStatWithMeta } from '../../../types.js'; +import { beforeEach, expect, it, test } from 'vitest'; import { CONTAINER_TYPES } from '../../../constants.js'; +import { ComputedStatWithMeta } from '../../../types.js'; +import type { StatStore } from '../statStore.js'; +import { createStatStore, getComputedStat, getContainers } from '../statStore.js'; const generator: Array<[number, number, string, number]> = [ [0, 0, '00Z', 1e3], diff --git a/src/model/stores/__tests__/timeframeStore.test.ts b/src/model/stores/__tests__/timeframeStore.test.ts index e0d9f27..d54c128 100644 --- a/src/model/stores/__tests__/timeframeStore.test.ts +++ b/src/model/stores/__tests__/timeframeStore.test.ts @@ -1,3 +1,4 @@ +import { beforeEach, expect, test } from 'vitest'; import type { TimeFrameWithMeta } from '../../../types.js'; import type { TimeFrameStore } from '../timeframeStore.js'; import { createTimeFrameStore, getTitles } from '../timeframeStore.js'; diff --git a/src/services/__tests__/parseConfigFile.ts b/src/services/__tests__/parseConfigFile.ts index aea5782..606054c 100644 --- a/src/services/__tests__/parseConfigFile.ts +++ b/src/services/__tests__/parseConfigFile.ts @@ -1,3 +1,4 @@ +import { describe, expect, test } from 'vitest'; import { resolveParams } from '../parseConfigFile.js'; describe('#resolveParams', () => { diff --git a/src/services/__tests__/readFileToString.ts b/src/services/__tests__/readFileToString.ts index 847318f..725262d 100644 --- a/src/services/__tests__/readFileToString.ts +++ b/src/services/__tests__/readFileToString.ts @@ -1,16 +1,25 @@ -jest.mock('node:fs', () => { +import { readFile } from 'node:fs'; +import path from 'node:path'; +import { describe, expect, test, vi } from 'vitest'; +import { readFileToString } from '../readFileToString.js'; + +vi.mock('node:fs', async (importOriginal) => { + const actual = await importOriginal(); return { - readFile: jest.fn().mockReturnValue('content file'), + ...actual, + readFile: vi.fn().mockReturnValue('content file'), + }; +}); + +vi.mock('node:util', async (importOriginal) => { + const actual = await importOriginal(); + return { + ...actual, + promisify: (cb: CallableFunction) => cb, }; }); -import { readFile } from 'node:fs'; -jest.mock('node:util', () => ({ - promisify: (cb: CallableFunction) => cb, -})); -import path from 'node:path'; const cwd = process.cwd(); -import { readFileToString } from '../readFileToString.js'; describe('#readFileToString', () => { test('Should call readFile with correctly resolved scenario path', () => { diff --git a/src/services/container/__tests__/execScenarioContainer.ts b/src/services/container/__tests__/execScenarioContainer.ts index 2217de6..ea8cf8b 100644 --- a/src/services/container/__tests__/execScenarioContainer.ts +++ b/src/services/container/__tests__/execScenarioContainer.ts @@ -1,11 +1,20 @@ -jest.mock('node:child_process', () => ({ - exec: jest.fn(), -})); - -jest.mock('node:util', () => ({ - promisify: (cb: CallableFunction) => cb, -})); +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; + +vi.mock('node:child_process', async (importOriginal) => { + const actual = await importOriginal(); + return { + ...actual, + exec: vi.fn(), + }; +}); +vi.mock('node:util', async (importOriginal) => { + const actual = await importOriginal(); + return { + ...actual, + promisify: (cb: CallableFunction) => cb, + }; +}); import { exec } from 'node:child_process'; import { buildEnvVarList, @@ -19,7 +28,7 @@ describe('#buildEnvVarList', () => { const env = process.env; beforeEach(() => { - jest.resetModules(); + vi.resetModules(); process.env = { ...env }; }); @@ -262,7 +271,7 @@ describe('#execScenarioContainer', () => { await expect( execScenarioContainer('path_to_scenario', 'http://example.com') - ).rejects.toThrow('Unexpected token I in JSON at position 21'); + ).rejects.toThrow(/Unexpected token/); }); afterEach(() => { diff --git a/src/services/container/__tests__/getContainerStats.ts b/src/services/container/__tests__/getContainerStats.ts index a7d85a7..1fe335d 100644 --- a/src/services/container/__tests__/getContainerStats.ts +++ b/src/services/container/__tests__/getContainerStats.ts @@ -1,27 +1,29 @@ -jest.mock('node:http', () => ({ - request: jest - .fn() - .mockImplementation( - ( - _: unknown, - callback: (res: { statusCode: number; on: (data: any) => void }) => void - ) => { - callback({ statusCode: 200, on: jest.fn() }); +import { beforeEach, describe, expect, it, vi } from 'vitest'; + +vi.mock('node:http', async (importOriginal) => { + const actual = await importOriginal(); + return { + ...actual, + default: { + ...actual, + request: vi.fn().mockImplementation((_: any, callback: any) => { + callback({ statusCode: 200, on: vi.fn() }); return { - on: jest.fn(), - write: jest.fn(), - end: jest.fn(), + on: vi.fn(), + write: vi.fn(), + end: vi.fn(), }; - } - ), -})); + }), + }, + }; +}); import http from 'node:http'; import getContainerStatsIfRunning from '../getContainerStats.js'; describe('getContainerStats', () => { beforeEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); it('should use the dockerd options if given', async () => { await getContainerStatsIfRunning('containerId', { diff --git a/src/services/container/execScenarioContainer.ts b/src/services/container/execScenarioContainer.ts index e057a0d..fa82e6f 100644 --- a/src/services/container/execScenarioContainer.ts +++ b/src/services/container/execScenarioContainer.ts @@ -1,10 +1,10 @@ import initDebug from 'debug'; import { exec as execSync } from 'node:child_process'; import path from 'node:path'; -import util from 'node:util'; +import { promisify } from 'node:util'; import { CONTAINER_DEVICE_NAME } from '../../constants.js'; import ScenarioError from '../errors/ScenarioError.js'; -const exec = util.promisify(execSync); +const exec = promisify(execSync); import { dirname } from 'node:path'; import { fileURLToPath } from 'node:url'; diff --git a/src/services/container/kubernetes/__tests__/mergePodStatsWithNetworkStats.ts b/src/services/container/kubernetes/__tests__/mergePodStatsWithNetworkStats.ts index 04458b2..612fbf1 100644 --- a/src/services/container/kubernetes/__tests__/mergePodStatsWithNetworkStats.ts +++ b/src/services/container/kubernetes/__tests__/mergePodStatsWithNetworkStats.ts @@ -1,8 +1,9 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ // @ts-expect-error polyfill import structuredClone from 'core-js-pure/actual/structured-clone'; -import { KubernetesRuns } from '../../index.js'; +import { describe, expect, it } from 'vitest'; import { CONTAINER_TYPES } from '../../../../constants.js'; +import { KubernetesRuns } from '../../index.js'; import { mergePodStatsWithNetworkStats } from '../mergePodStatsWithNetworkStats.js'; import { Stat } from '../stats.js'; import { Nodes } from '../structureNodes.js'; diff --git a/src/services/detectExecutablePath.ts b/src/services/detectExecutablePath.ts index 352b6dc..396d096 100644 --- a/src/services/detectExecutablePath.ts +++ b/src/services/detectExecutablePath.ts @@ -1,8 +1,8 @@ import { access } from 'node:fs'; -import util from 'node:util'; +import { promisify } from 'node:util'; import ConfigurationError from './errors/ConfigurationError.js'; -const accessPromise = util.promisify(access); +const accessPromise = promisify(access); const PATHS = [ '/usr/bin/chromium', diff --git a/src/services/docker/index.ts b/src/services/docker/index.ts index a06fb92..d04506c 100644 --- a/src/services/docker/index.ts +++ b/src/services/docker/index.ts @@ -1,6 +1,6 @@ -import util from 'node:util'; +import { promisify } from 'node:util'; import { exec as execSync } from 'node:child_process'; -const exec = util.promisify(execSync); +const exec = promisify(execSync); export async function getDockerVersion() { const { stdout } = await exec('docker -v'); diff --git a/src/services/git/__tests__/index.ts b/src/services/git/__tests__/index.ts index 69af92a..6607b19 100644 --- a/src/services/git/__tests__/index.ts +++ b/src/services/git/__tests__/index.ts @@ -1,21 +1,34 @@ -jest.mock('../utils'); +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; + +vi.mock('../utils.js', async (importOriginal) => { + const actual = await importOriginal(); + return { + ...actual, + getCommitMessage: vi.fn(), + getBranchName: vi.fn(), + getCommitId: vi.fn(), + getCommitAncestorWithDefaultBranch: vi.fn(), + getDirectCommitAncestor: vi.fn(), + }; +}); + +import { retrieveGitInformations } from '../index.js'; import { - getCommitMessage, getBranchName, - getCommitId, getCommitAncestorWithDefaultBranch, + getCommitId, + getCommitMessage, } from '../utils.js'; -import { retrieveGitInformations } from '../index.js'; describe('#retrieveGitInformations', () => { beforeEach(() => { - // @ts-expect-error Jest mock + // @ts-expect-error vi mock getCommitMessage.mockResolvedValue('DEFAULT COMMIT MESSAGE'); - // @ts-expect-error Jest mock + // @ts-expect-error vi mock getBranchName.mockResolvedValue('default_branch_name'); - // @ts-expect-error Jest mock + // @ts-expect-error vi mock getCommitId.mockResolvedValue('default-commit-id'); - // @ts-expect-error Jest mock + // @ts-expect-error vi mock getCommitAncestorWithDefaultBranch.mockResolvedValue('default-branch-commit-id'); }); @@ -78,13 +91,13 @@ describe('#retrieveGitInformations', () => { }); afterEach(() => { - // @ts-expect-error Jest mock + // @ts-expect-error vi mock getCommitMessage.mockReset(); - // @ts-expect-error Jest mock + // @ts-expect-error vi mock getBranchName.mockReset(); - // @ts-expect-error Jest mock + // @ts-expect-error vi mock getCommitId.mockReset(); - // @ts-expect-error Jest mock + // @ts-expect-error vi mock getCommitAncestorWithDefaultBranch.mockReset(); }); }); diff --git a/src/services/git/__tests__/utils.ts b/src/services/git/__tests__/utils.ts index 2b3eaa6..182503a 100644 --- a/src/services/git/__tests__/utils.ts +++ b/src/services/git/__tests__/utils.ts @@ -1,23 +1,33 @@ -jest.mock('node:child_process', () => ({ - exec: jest.fn(), -})); +import { afterEach, describe, expect, it, vi } from 'vitest'; -jest.mock('node:util', () => ({ - promisify: (cb: CallableFunction) => cb, -})); +vi.mock('node:child_process', async (importOriginal) => { + const actual = await importOriginal(); + return { + ...actual, + exec: vi.fn(), + }; +}); + +vi.mock('node:util', async (importOriginal) => { + const actual = await importOriginal(); + return { + ...actual, + promisify: (cb: CallableFunction) => cb, + }; +}); import { exec } from 'node:child_process'; import { - getCommitMessage, getBranchName, + getCommitAncestorWithDefaultBranch, getCommitId, + getCommitMessage, getDirectCommitAncestor, - getCommitAncestorWithDefaultBranch, } from '../utils.js'; describe('#getCommitMessage', () => { it('Should call exec', async () => { - // @ts-expect-error Jest mock + // @ts-expect-error vi mock exec.mockReturnValue({ stdout: 'COMMIT MESSAGE' }); const commitMessage = await getCommitMessage(); expect(exec).toHaveBeenCalledTimes(1); @@ -25,14 +35,14 @@ describe('#getCommitMessage', () => { expect(commitMessage).toBe('COMMIT MESSAGE'); }); afterEach(() => { - // @ts-expect-error Jest mock + // @ts-expect-error vi mock exec.mockClear(); }); }); describe('#getBranchName', () => { it('Should call exec', async () => { - // @ts-expect-error Jest mock + // @ts-expect-error vi mock exec.mockReturnValue({ stdout: 'BRANCH NAME' }); const branchMessage = await getBranchName(); expect(exec).toHaveBeenCalledTimes(1); @@ -40,14 +50,14 @@ describe('#getBranchName', () => { expect(branchMessage).toBe('BRANCH NAME'); }); afterEach(() => { - // @ts-expect-error Jest mock + // @ts-expect-error vi mock exec.mockClear(); }); }); describe('#getCommitId', () => { it('Should call exec', async () => { - // @ts-expect-error Jest mock + // @ts-expect-error vi mock exec.mockReturnValue({ stdout: 'COMMIT ID' }); const commitMessage = await getCommitId(); expect(exec).toHaveBeenCalledTimes(1); @@ -55,14 +65,14 @@ describe('#getCommitId', () => { expect(commitMessage).toBe('COMMIT ID'); }); afterEach(() => { - // @ts-expect-error Jest mock + // @ts-expect-error vi mock exec.mockClear(); }); }); describe('#getDirectCommitAncestor', () => { it('Should call exec', async () => { - // @ts-expect-error Jest mock + // @ts-expect-error vi mock exec.mockReturnValue({ stdout: 'DIRECT COMMIT ANCESTOR' }); const commitMessage = await getDirectCommitAncestor(); expect(exec).toHaveBeenCalledTimes(1); @@ -71,7 +81,7 @@ describe('#getDirectCommitAncestor', () => { }); it('Should throw an error because exec print in stderr', async () => { - // @ts-expect-error Jest mock + // @ts-expect-error vi mock exec.mockReturnValue({ stdout: 'DIRECT COMMIT ANCESTOR', stderr: 'SOMETHING WENT WRONG', @@ -83,14 +93,14 @@ describe('#getDirectCommitAncestor', () => { }); afterEach(() => { - // @ts-expect-error Jest mock + // @ts-expect-error vi mock exec.mockClear(); }); }); describe('#getCommitAncestorWithDefaultBranch', () => { it('Should call exec', async () => { - // @ts-expect-error Jest mock + // @ts-expect-error vi mock exec.mockReturnValue({ stdout: 'COMMIT ANCESTOR' }); const commitMessage = await getCommitAncestorWithDefaultBranch('mybranch'); expect(exec).toHaveBeenCalledTimes(1); @@ -101,7 +111,7 @@ describe('#getCommitAncestorWithDefaultBranch', () => { }); it('Should throw an error because exec print in stderr', async () => { - // @ts-expect-error Jest mock + // @ts-expect-error vi mock exec.mockReturnValue({ stdout: 'COMMIT ANCESTOR', stderr: 'SOMETHING WENT WRONG', @@ -115,7 +125,7 @@ describe('#getCommitAncestorWithDefaultBranch', () => { }); afterEach(() => { - // @ts-expect-error Jest mock + // @ts-expect-error vi mock exec.mockClear(); }); }); diff --git a/src/services/git/utils.ts b/src/services/git/utils.ts index 3d886f2..8ec7f75 100644 --- a/src/services/git/utils.ts +++ b/src/services/git/utils.ts @@ -1,6 +1,6 @@ -import util from 'node:util'; +import { promisify } from 'node:util'; import { exec as execSync } from 'node:child_process'; -const exec = util.promisify(execSync); +const exec = promisify(execSync); export const getCommitMessage = async () => { try { diff --git a/src/services/parseConfigFile.ts b/src/services/parseConfigFile.ts index fb505ad..453cc13 100644 --- a/src/services/parseConfigFile.ts +++ b/src/services/parseConfigFile.ts @@ -1,11 +1,11 @@ import yaml from 'js-yaml'; import fs from 'node:fs'; -import util from 'node:util'; +import { promisify } from 'node:util'; import { DEFAULT_CONFIG_FILE } from '../commands/analyze.js'; import ConfigurationError from './errors/ConfigurationError.js'; const FILE_NOT_FOUND = 'ENOENT'; -const readFile = util.promisify(fs.readFile); +const readFile = promisify(fs.readFile); const isMissingDefaultConfigFile = (path: string, error: any) => { return path === DEFAULT_CONFIG_FILE && error.code === FILE_NOT_FOUND; diff --git a/src/services/readFileToString.ts b/src/services/readFileToString.ts index 02282a3..93b79aa 100644 --- a/src/services/readFileToString.ts +++ b/src/services/readFileToString.ts @@ -1,6 +1,6 @@ -import fs from 'node:fs'; -import util from 'node:util'; -const readFile = util.promisify(fs.readFile); +import { readFile as readfileThen } from 'node:fs'; +import { promisify } from 'node:util'; +const readFile = promisify(readfileThen); import path from 'node:path'; export const readFileToString = async (configFilePath: string, scenarioPath: string) => { diff --git a/tsconfig.json b/tsconfig.json index 3a78899..3c55743 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -33,8 +33,7 @@ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ "types": [ - "node", - "jest" + "node" ] /* Specify type package names to be included without being referenced in a source file. */, // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */, // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 0000000..efea459 --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,8 @@ +/// +import { defineConfig } from 'vite'; + +export default defineConfig({ + test: { + include: ['**/*.{test,spec}.?(c|m)[jt]s?(x)', '**/__tests__/*.?(c|m)[jt]s?(x)'], + }, +}); diff --git a/yarn.lock b/yarn.lock index 6127660..b166112 100644 --- a/yarn.lock +++ b/yarn.lock @@ -773,7 +773,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.22.5": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.22.5": version: 7.22.5 resolution: "@babel/code-frame@npm:7.22.5" dependencies: @@ -789,7 +789,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.16, @babel/core@npm:^7.12.3, @babel/core@npm:^7.15.8": +"@babel/core@npm:^7.12.16, @babel/core@npm:^7.15.8": version: 7.22.8 resolution: "@babel/core@npm:7.22.8" dependencies: @@ -826,7 +826,7 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.22.7, @babel/generator@npm:^7.7.2": +"@babel/generator@npm:^7.22.7": version: 7.22.7 resolution: "@babel/generator@npm:7.22.7" dependencies: @@ -904,13 +904,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0": - version: 7.22.5 - resolution: "@babel/helper-plugin-utils@npm:7.22.5" - checksum: c0fc7227076b6041acd2f0e818145d2e8c41968cc52fb5ca70eed48e21b8fe6dd88a0a91cbddf4951e33647336eb5ae184747ca706817ca3bef5e9e905151ff5 - languageName: node - linkType: hard - "@babel/helper-simple-access@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-simple-access@npm:7.22.5" @@ -972,7 +965,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.5, @babel/parser@npm:^7.22.7": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.5, @babel/parser@npm:^7.22.7": version: 7.22.7 resolution: "@babel/parser@npm:7.22.7" bin: @@ -981,149 +974,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-async-generators@npm:^7.8.4": - version: 7.8.4 - resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7ed1c1d9b9e5b64ef028ea5e755c0be2d4e5e4e3d6cf7df757b9a8c4cfa4193d268176d0f1f7fbecdda6fe722885c7fda681f480f3741d8a2d26854736f05367 - languageName: node - linkType: hard - -"@babel/plugin-syntax-bigint@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-bigint@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3a10849d83e47aec50f367a9e56a6b22d662ddce643334b087f9828f4c3dd73bdc5909aaeabe123fed78515767f9ca43498a0e621c438d1cd2802d7fae3c9648 - languageName: node - linkType: hard - -"@babel/plugin-syntax-class-properties@npm:^7.8.3": - version: 7.12.13 - resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" - dependencies: - "@babel/helper-plugin-utils": ^7.12.13 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-meta@npm:^7.8.3": - version: 7.10.4 - resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 166ac1125d10b9c0c430e4156249a13858c0366d38844883d75d27389621ebe651115cb2ceb6dc011534d5055719fa1727b59f39e1ab3ca97820eef3dcab5b9b - languageName: node - linkType: hard - -"@babel/plugin-syntax-json-strings@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a - languageName: node - linkType: hard - -"@babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": - version: 7.10.4 - resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886 - languageName: node - linkType: hard - -"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1 - languageName: node - linkType: hard - -"@babel/plugin-syntax-numeric-separator@npm:^7.8.3": - version: 7.10.4 - resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1 - languageName: node - linkType: hard - -"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9 - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30 - languageName: node - linkType: hard - -"@babel/plugin-syntax-top-level-await@npm:^7.8.3": - version: 7.14.5 - resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e - languageName: node - linkType: hard - -"@babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.22.5 - resolution: "@babel/plugin-syntax-typescript@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 8ab7718fbb026d64da93681a57797d60326097fd7cb930380c8bffd9eb101689e90142c760a14b51e8e69c88a73ba3da956cb4520a3b0c65743aee5c71ef360a - languageName: node - linkType: hard - "@babel/runtime@npm:^7.15.4": version: 7.22.6 resolution: "@babel/runtime@npm:7.22.6" @@ -1133,7 +983,7 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.22.5, @babel/template@npm:^7.3.3": +"@babel/template@npm:^7.22.5": version: 7.22.5 resolution: "@babel/template@npm:7.22.5" dependencies: @@ -1144,7 +994,7 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.22.5, @babel/traverse@npm:^7.22.6, @babel/traverse@npm:^7.22.8, @babel/traverse@npm:^7.7.2": +"@babel/traverse@npm:^7.22.5, @babel/traverse@npm:^7.22.6, @babel/traverse@npm:^7.22.8": version: 7.22.8 resolution: "@babel/traverse@npm:7.22.8" dependencies: @@ -1162,7 +1012,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.5, @babel/types@npm:^7.3.3, @babel/types@npm:^7.8.3": +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.5, @babel/types@npm:^7.8.3": version: 7.22.5 resolution: "@babel/types@npm:7.22.5" dependencies: @@ -1173,13 +1023,6 @@ __metadata: languageName: node linkType: hard -"@bcoe/v8-coverage@npm:^0.2.3": - version: 0.2.3 - resolution: "@bcoe/v8-coverage@npm:0.2.3" - checksum: 850f9305536d0f2bd13e9e0881cb5f02e4f93fad1189f7b2d4bebf694e3206924eadee1068130d43c11b750efcc9405f88a8e42ef098b6d75239c0f047de1a27 - languageName: node - linkType: hard - "@cliqz/adblocker-content@npm:^1.26.6": version: 1.26.6 resolution: "@cliqz/adblocker-content@npm:1.26.6" @@ -1234,6 +1077,167 @@ __metadata: languageName: node linkType: hard +"@esbuild/aix-ppc64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/aix-ppc64@npm:0.19.12" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/android-arm64@npm:0.19.12" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/android-arm@npm:0.19.12" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/android-x64@npm:0.19.12" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/darwin-arm64@npm:0.19.12" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/darwin-x64@npm:0.19.12" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/freebsd-arm64@npm:0.19.12" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/freebsd-x64@npm:0.19.12" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-arm64@npm:0.19.12" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-arm@npm:0.19.12" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-ia32@npm:0.19.12" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-loong64@npm:0.19.12" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-mips64el@npm:0.19.12" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-ppc64@npm:0.19.12" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-riscv64@npm:0.19.12" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-s390x@npm:0.19.12" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-x64@npm:0.19.12" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/netbsd-x64@npm:0.19.12" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/openbsd-x64@npm:0.19.12" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/sunos-x64@npm:0.19.12" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/win32-arm64@npm:0.19.12" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/win32-ia32@npm:0.19.12" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/win32-x64@npm:0.19.12" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.3.0": version: 4.4.0 resolution: "@eslint-community/eslint-utils@npm:4.4.0" @@ -1362,254 +1366,12 @@ __metadata: languageName: node linkType: hard -"@istanbuljs/load-nyc-config@npm:^1.0.0": - version: 1.1.0 - resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" - dependencies: - camelcase: ^5.3.1 - find-up: ^4.1.0 - get-package-type: ^0.1.0 - js-yaml: ^3.13.1 - resolve-from: ^5.0.0 - checksum: d578da5e2e804d5c93228450a1380e1a3c691de4953acc162f387b717258512a3e07b83510a936d9fab03eac90817473917e24f5d16297af3867f59328d58568 - languageName: node - linkType: hard - -"@istanbuljs/schema@npm:^0.1.2": - version: 0.1.3 - resolution: "@istanbuljs/schema@npm:0.1.3" - checksum: 5282759d961d61350f33d9118d16bcaed914ebf8061a52f4fa474b2cb08720c9c81d165e13b82f2e5a8a212cc5af482f0c6fc1ac27b9e067e5394c9a6ed186c9 - languageName: node - linkType: hard - -"@jest/console@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/console@npm:28.1.3" +"@jest/schemas@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/schemas@npm:29.6.3" dependencies: - "@jest/types": ^28.1.3 - "@types/node": "*" - chalk: ^4.0.0 - jest-message-util: ^28.1.3 - jest-util: ^28.1.3 - slash: ^3.0.0 - checksum: fe50d98d26d02ce2901c76dff4bd5429a33c13affb692c9ebf8a578ca2f38a5dd854363d40d6c394f215150791fd1f692afd8e730a4178dda24107c8dfd9750a - languageName: node - linkType: hard - -"@jest/core@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/core@npm:28.1.3" - dependencies: - "@jest/console": ^28.1.3 - "@jest/reporters": ^28.1.3 - "@jest/test-result": ^28.1.3 - "@jest/transform": ^28.1.3 - "@jest/types": ^28.1.3 - "@types/node": "*" - ansi-escapes: ^4.2.1 - chalk: ^4.0.0 - ci-info: ^3.2.0 - exit: ^0.1.2 - graceful-fs: ^4.2.9 - jest-changed-files: ^28.1.3 - jest-config: ^28.1.3 - jest-haste-map: ^28.1.3 - jest-message-util: ^28.1.3 - jest-regex-util: ^28.0.2 - jest-resolve: ^28.1.3 - jest-resolve-dependencies: ^28.1.3 - jest-runner: ^28.1.3 - jest-runtime: ^28.1.3 - jest-snapshot: ^28.1.3 - jest-util: ^28.1.3 - jest-validate: ^28.1.3 - jest-watcher: ^28.1.3 - micromatch: ^4.0.4 - pretty-format: ^28.1.3 - rimraf: ^3.0.0 - slash: ^3.0.0 - strip-ansi: ^6.0.0 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - checksum: cb79f34bafc4637e7130df12257f5b29075892a2be2c7f45c6d4c0420853e80b5dae11016e652530eb234f4c44c00910cdca3c2cd86275721860725073f7d9b4 - languageName: node - linkType: hard - -"@jest/environment@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/environment@npm:28.1.3" - dependencies: - "@jest/fake-timers": ^28.1.3 - "@jest/types": ^28.1.3 - "@types/node": "*" - jest-mock: ^28.1.3 - checksum: 14c496b84aef951df33128cea68988e9de43b2e9d62be9f9c4308d4ac307fa345642813679f80d0a4cedeb900cf6f0b6bb2b92ce089528e8721f72295fdc727f - languageName: node - linkType: hard - -"@jest/expect-utils@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/expect-utils@npm:28.1.3" - dependencies: - jest-get-type: ^28.0.2 - checksum: 808ea3a68292a7e0b95490fdd55605c430b4cf209ea76b5b61bfb2a1badcb41bc046810fe4e364bd5fe04663978aa2bd73d8f8465a761dd7c655aeb44cf22987 - languageName: node - linkType: hard - -"@jest/expect@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/expect@npm:28.1.3" - dependencies: - expect: ^28.1.3 - jest-snapshot: ^28.1.3 - checksum: 4197f6fdddc33dc45ba4e838f992fc61839c421d7aed0dfe665ef9c2f172bb1df8a8cac9cecee272b40e744a326da521d5e182709fe82a0b936055bfffa3b473 - languageName: node - linkType: hard - -"@jest/fake-timers@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/fake-timers@npm:28.1.3" - dependencies: - "@jest/types": ^28.1.3 - "@sinonjs/fake-timers": ^9.1.2 - "@types/node": "*" - jest-message-util: ^28.1.3 - jest-mock: ^28.1.3 - jest-util: ^28.1.3 - checksum: cec14d5b14913a54dce64a62912c5456235f5d90b509ceae19c727565073114dae1aaf960ac6be96b3eb94789a3a758b96b72c8fca7e49a6ccac415fbc0321e1 - languageName: node - linkType: hard - -"@jest/globals@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/globals@npm:28.1.3" - dependencies: - "@jest/environment": ^28.1.3 - "@jest/expect": ^28.1.3 - "@jest/types": ^28.1.3 - checksum: 3504bb23de629d466c6f2b6b75d2e1c1b10caccbbcfb7eaa82d22cc37711c8e364c243929581184846605c023b475ea6c42c2e3ea5994429a988d8d527af32cd - languageName: node - linkType: hard - -"@jest/reporters@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/reporters@npm:28.1.3" - dependencies: - "@bcoe/v8-coverage": ^0.2.3 - "@jest/console": ^28.1.3 - "@jest/test-result": ^28.1.3 - "@jest/transform": ^28.1.3 - "@jest/types": ^28.1.3 - "@jridgewell/trace-mapping": ^0.3.13 - "@types/node": "*" - chalk: ^4.0.0 - collect-v8-coverage: ^1.0.0 - exit: ^0.1.2 - glob: ^7.1.3 - graceful-fs: ^4.2.9 - istanbul-lib-coverage: ^3.0.0 - istanbul-lib-instrument: ^5.1.0 - istanbul-lib-report: ^3.0.0 - istanbul-lib-source-maps: ^4.0.0 - istanbul-reports: ^3.1.3 - jest-message-util: ^28.1.3 - jest-util: ^28.1.3 - jest-worker: ^28.1.3 - slash: ^3.0.0 - string-length: ^4.0.1 - strip-ansi: ^6.0.0 - terminal-link: ^2.0.0 - v8-to-istanbul: ^9.0.1 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - checksum: a7440887ce837922cbeaa64c3232eb48aae02aa9123f29fc4280ad3e1afe4b35dcba171ba1d5fd219037c396c5152d9c2d102cff1798dd5ae3bd33ac4759ae0a - languageName: node - linkType: hard - -"@jest/schemas@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/schemas@npm:28.1.3" - dependencies: - "@sinclair/typebox": ^0.24.1 - checksum: 3cf1d4b66c9c4ffda58b246de1ddcba8e6ad085af63dccdf07922511f13b68c0cc480a7bc620cb4f3099a6f134801c747e1df7bfc7a4ef4dceefbdea3e31e1de - languageName: node - linkType: hard - -"@jest/source-map@npm:^28.1.2": - version: 28.1.2 - resolution: "@jest/source-map@npm:28.1.2" - dependencies: - "@jridgewell/trace-mapping": ^0.3.13 - callsites: ^3.0.0 - graceful-fs: ^4.2.9 - checksum: b82a5c2e93d35d86779c61a02ccb967d1b5cd2e9dd67d26d8add44958637cbbb99daeeb8129c7653389cb440dc2a2f5ae4d2183dc453c67669ff98938b775a3a - languageName: node - linkType: hard - -"@jest/test-result@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/test-result@npm:28.1.3" - dependencies: - "@jest/console": ^28.1.3 - "@jest/types": ^28.1.3 - "@types/istanbul-lib-coverage": ^2.0.0 - collect-v8-coverage: ^1.0.0 - checksum: 957a5dd2fd2e84aabe86698f93c0825e96128ccaa23abf548b159a9b08ac74e4bde7acf4bec48479243dbdb27e4ea1b68c171846d21fb64855c6b55cead9ef27 - languageName: node - linkType: hard - -"@jest/test-sequencer@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/test-sequencer@npm:28.1.3" - dependencies: - "@jest/test-result": ^28.1.3 - graceful-fs: ^4.2.9 - jest-haste-map: ^28.1.3 - slash: ^3.0.0 - checksum: 13f8905e6d1ec8286694146f7be3cf90eff801bbdea5e5c403e6881444bb390ed15494c7b9948aa94bd7e9c9a851e0d3002ed6e7371d048b478596e5b23df953 - languageName: node - linkType: hard - -"@jest/transform@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/transform@npm:28.1.3" - dependencies: - "@babel/core": ^7.11.6 - "@jest/types": ^28.1.3 - "@jridgewell/trace-mapping": ^0.3.13 - babel-plugin-istanbul: ^6.1.1 - chalk: ^4.0.0 - convert-source-map: ^1.4.0 - fast-json-stable-stringify: ^2.0.0 - graceful-fs: ^4.2.9 - jest-haste-map: ^28.1.3 - jest-regex-util: ^28.0.2 - jest-util: ^28.1.3 - micromatch: ^4.0.4 - pirates: ^4.0.4 - slash: ^3.0.0 - write-file-atomic: ^4.0.1 - checksum: dadf618936e0aa84342f07f532801d5bed43cdf95d1417b929e4f8782c872cff1adc84096d5a287a796d0039a2691c06d8450cce5a713a8b52fbb9f872a1e760 - languageName: node - linkType: hard - -"@jest/types@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/types@npm:28.1.3" - dependencies: - "@jest/schemas": ^28.1.3 - "@types/istanbul-lib-coverage": ^2.0.0 - "@types/istanbul-reports": ^3.0.0 - "@types/node": "*" - "@types/yargs": ^17.0.8 - chalk: ^4.0.0 - checksum: 1e258d9c063fcf59ebc91e46d5ea5984674ac7ae6cae3e50aa780d22b4405bf2c925f40350bf30013839eb5d4b5e521d956ddf8f3b7c78debef0e75a07f57350 + "@sinclair/typebox": ^0.27.8 + checksum: 910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93 languageName: node linkType: hard @@ -1652,7 +1414,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.10": +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.15": version: 1.4.15 resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 @@ -1669,7 +1431,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.13, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9": +"@jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9": version: 0.3.18 resolution: "@jridgewell/trace-mapping@npm:0.3.18" dependencies: @@ -2276,6 +2038,97 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm-eabi@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.13.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-android-arm64@npm:4.13.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.13.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.13.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.13.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.13.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.13.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.13.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.13.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.13.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.13.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.13.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.13.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@sentry/core@npm:6.19.7": version: 6.19.7 resolution: "@sentry/core@npm:6.19.7" @@ -2384,10 +2237,10 @@ __metadata: languageName: node linkType: hard -"@sinclair/typebox@npm:^0.24.1": - version: 0.24.51 - resolution: "@sinclair/typebox@npm:0.24.51" - checksum: fd0d855e748ef767eb19da1a60ed0ab928e91e0f358c1dd198d600762c0015440b15755e96d1176e2a0db7e09c6a64ed487828ee10dd0c3e22f61eb09c478cd0 +"@sinclair/typebox@npm:^0.27.8": + version: 0.27.8 + resolution: "@sinclair/typebox@npm:0.27.8" + checksum: 00bd7362a3439021aa1ea51b0e0d0a0e8ca1351a3d54c606b115fdcc49b51b16db6e5f43b4fe7a28c38688523e22a94d49dd31168868b655f0d4d50f032d07a1 languageName: node linkType: hard @@ -2398,24 +2251,6 @@ __metadata: languageName: node linkType: hard -"@sinonjs/commons@npm:^1.7.0": - version: 1.8.6 - resolution: "@sinonjs/commons@npm:1.8.6" - dependencies: - type-detect: 4.0.8 - checksum: 7d3f8c1e85f30cd4e83594fc19b7a657f14d49eb8d95a30095631ce15e906c869e0eff96c5b93dffea7490c00418b07f54582ba49c6560feb2a8c34c0b16832d - languageName: node - linkType: hard - -"@sinonjs/fake-timers@npm:^9.1.2": - version: 9.1.2 - resolution: "@sinonjs/fake-timers@npm:9.1.2" - dependencies: - "@sinonjs/commons": ^1.7.0 - checksum: 7d3aef54e17c1073101cb64d953157c19d62a40e261a30923fa1ee337b049c5f29cc47b1f0c477880f42b5659848ba9ab897607ac8ea4acd5c30ddcfac57fca6 - languageName: node - linkType: hard - "@smithy/abort-controller@npm:^2.1.4": version: 2.1.4 resolution: "@smithy/abort-controller@npm:2.1.4" @@ -3058,7 +2893,7 @@ __metadata: languageName: node linkType: hard -"@types/babel__core@npm:^7.1.14, @types/babel__core@npm:^7.1.19": +"@types/babel__core@npm:^7.1.19": version: 7.20.1 resolution: "@types/babel__core@npm:7.20.1" dependencies: @@ -3090,7 +2925,7 @@ __metadata: languageName: node linkType: hard -"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": +"@types/babel__traverse@npm:*": version: 7.20.1 resolution: "@types/babel__traverse@npm:7.20.1" dependencies: @@ -3182,6 +3017,13 @@ __metadata: languageName: node linkType: hard +"@types/estree@npm:1.0.5, @types/estree@npm:^1.0.0": + version: 1.0.5 + resolution: "@types/estree@npm:1.0.5" + checksum: dd8b5bed28e6213b7acd0fb665a84e693554d850b0df423ac8076cc3ad5823a6bc26b0251d080bdc545af83179ede51dd3f6fa78cad2c46ed1f29624ddf3e41a + languageName: node + linkType: hard + "@types/expect@npm:^1.20.4": version: 1.20.4 resolution: "@types/expect@npm:1.20.4" @@ -3222,15 +3064,6 @@ __metadata: languageName: node linkType: hard -"@types/graceful-fs@npm:^4.1.3": - version: 4.1.6 - resolution: "@types/graceful-fs@npm:4.1.6" - dependencies: - "@types/node": "*" - checksum: c3070ccdc9ca0f40df747bced1c96c71a61992d6f7c767e8fd24bb6a3c2de26e8b84135ede000b7e79db530a23e7e88dcd9db60eee6395d0f4ce1dae91369dd4 - languageName: node - linkType: hard - "@types/har-format@npm:*": version: 1.2.11 resolution: "@types/har-format@npm:1.2.11" @@ -3245,41 +3078,6 @@ __metadata: languageName: node linkType: hard -"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": - version: 2.0.4 - resolution: "@types/istanbul-lib-coverage@npm:2.0.4" - checksum: a25d7589ee65c94d31464c16b72a9dc81dfa0bea9d3e105ae03882d616e2a0712a9c101a599ec482d297c3591e16336962878cb3eb1a0a62d5b76d277a890ce7 - languageName: node - linkType: hard - -"@types/istanbul-lib-report@npm:*": - version: 3.0.0 - resolution: "@types/istanbul-lib-report@npm:3.0.0" - dependencies: - "@types/istanbul-lib-coverage": "*" - checksum: 656398b62dc288e1b5226f8880af98087233cdb90100655c989a09f3052b5775bf98ba58a16c5ae642fb66c61aba402e07a9f2bff1d1569e3b306026c59f3f36 - languageName: node - linkType: hard - -"@types/istanbul-reports@npm:^3.0.0": - version: 3.0.1 - resolution: "@types/istanbul-reports@npm:3.0.1" - dependencies: - "@types/istanbul-lib-report": "*" - checksum: f1ad54bc68f37f60b30c7915886b92f86b847033e597f9b34f2415acdbe5ed742fa559a0a40050d74cdba3b6a63c342cac1f3a64dba5b68b66a6941f4abd7903 - languageName: node - linkType: hard - -"@types/jest@npm:^28.1.6": - version: 28.1.8 - resolution: "@types/jest@npm:28.1.8" - dependencies: - expect: ^28.0.0 - pretty-format: ^28.0.0 - checksum: d4cd36158a3ae1d4b42cc48a77c95de74bc56b84cf81e09af3ee0399c34f4a7da8ab9e787570f10004bd642f9e781b0033c37327fbbf4a8e4b6e37e8ee3693a7 - languageName: node - linkType: hard - "@types/js-yaml@npm:^4.0.5": version: 4.0.5 resolution: "@types/js-yaml@npm:4.0.5" @@ -3382,7 +3180,7 @@ __metadata: languageName: node linkType: hard -"@types/prettier@npm:^2.1.5, @types/prettier@npm:^2.6.3": +"@types/prettier@npm:^2.6.3": version: 2.7.3 resolution: "@types/prettier@npm:2.7.3" checksum: 705384209cea6d1433ff6c187c80dcc0b95d99d5c5ce21a46a9a58060c527973506822e428789d842761e0280d25e3359300f017fbe77b9755bc772ab3dc2f83 @@ -3405,13 +3203,6 @@ __metadata: languageName: node linkType: hard -"@types/stack-utils@npm:^2.0.0": - version: 2.0.1 - resolution: "@types/stack-utils@npm:2.0.1" - checksum: 205fdbe3326b7046d7eaf5e494d8084f2659086a266f3f9cf00bccc549c8e36e407f88168ad4383c8b07099957ad669f75f2532ed4bc70be2b037330f7bae019 - languageName: node - linkType: hard - "@types/strip-bom@npm:^3.0.0": version: 3.0.0 resolution: "@types/strip-bom@npm:3.0.0" @@ -3445,22 +3236,6 @@ __metadata: languageName: node linkType: hard -"@types/yargs-parser@npm:*": - version: 21.0.0 - resolution: "@types/yargs-parser@npm:21.0.0" - checksum: b2f4c8d12ac18a567440379909127cf2cec393daffb73f246d0a25df36ea983b93b7e9e824251f959e9f928cbc7c1aab6728d0a0ff15d6145f66cec2be67d9a2 - languageName: node - linkType: hard - -"@types/yargs@npm:^17.0.8": - version: 17.0.24 - resolution: "@types/yargs@npm:17.0.24" - dependencies: - "@types/yargs-parser": "*" - checksum: 5f3ac4dc4f6e211c1627340160fbe2fd247ceba002190da6cf9155af1798450501d628c9165a183f30a224fc68fa5e700490d740ff4c73e2cdef95bc4e8ba7bf - languageName: node - linkType: hard - "@typescript-eslint/eslint-plugin@npm:*": version: 6.0.0 resolution: "@typescript-eslint/eslint-plugin@npm:6.0.0" @@ -3550,17 +3325,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/experimental-utils@npm:^5.0.0": - version: 5.62.0 - resolution: "@typescript-eslint/experimental-utils@npm:5.62.0" - dependencies: - "@typescript-eslint/utils": 5.62.0 - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: ce55d9f74eac5cb94d66d5db9ead9a5d734f4301519fb5956a57f4b405a5318a115b0316195a3c039e0111489138680411709cb769085d71e1e1db1376ea0949 - languageName: node - linkType: hard - "@typescript-eslint/parser@npm:*": version: 6.0.0 resolution: "@typescript-eslint/parser@npm:6.0.0" @@ -3818,6 +3582,60 @@ __metadata: languageName: node linkType: hard +"@vitest/expect@npm:1.3.1": + version: 1.3.1 + resolution: "@vitest/expect@npm:1.3.1" + dependencies: + "@vitest/spy": 1.3.1 + "@vitest/utils": 1.3.1 + chai: ^4.3.10 + checksum: 3626b02f0471c9be3a86f599cf8fcdeb3fc01f121390c5e4a2badfa3191052f7ea7b41f75991a08021ef96214e62c4750fbea58e32b48bf6132e03aee68d1f14 + languageName: node + linkType: hard + +"@vitest/runner@npm:1.3.1": + version: 1.3.1 + resolution: "@vitest/runner@npm:1.3.1" + dependencies: + "@vitest/utils": 1.3.1 + p-limit: ^5.0.0 + pathe: ^1.1.1 + checksum: 86dfb4d485b2db4a120d853a93f017ab43001f18cdceba487f81b62bfbb26ea58cf9545e42a3bfed9c1181ca42547c5c6d5e5d580e299e841d70546b3db8f987 + languageName: node + linkType: hard + +"@vitest/snapshot@npm:1.3.1": + version: 1.3.1 + resolution: "@vitest/snapshot@npm:1.3.1" + dependencies: + magic-string: ^0.30.5 + pathe: ^1.1.1 + pretty-format: ^29.7.0 + checksum: 5feb485bce446316594fff955a32dff68294f24dbcaeeea3a04175306d9319e62419a63c038d580db412c308c529c3fbaa5ea21365e9a3c4f1ed7e774e58de75 + languageName: node + linkType: hard + +"@vitest/spy@npm:1.3.1": + version: 1.3.1 + resolution: "@vitest/spy@npm:1.3.1" + dependencies: + tinyspy: ^2.2.0 + checksum: f52e4d23822fe69369224327a33466dc373619ed239ff6142ed0abea857e9b102bb7630c3987d8493af7273eee579d9190d647a3e9f83774603ac7d29b849747 + languageName: node + linkType: hard + +"@vitest/utils@npm:1.3.1": + version: 1.3.1 + resolution: "@vitest/utils@npm:1.3.1" + dependencies: + diff-sequences: ^29.6.3 + estree-walker: ^3.0.3 + loupe: ^2.3.7 + pretty-format: ^29.7.0 + checksum: dab1f66c223a4de90d01a9ba03a6110edd110794675a9e73a2b3af689bbaee2371a0a0afd93e6b9447bcf61659c60727ece343a3e04b734f178f542a53586ef0 + languageName: node + linkType: hard + "abbrev@npm:1, abbrev@npm:^1.0.0": version: 1.1.1 resolution: "abbrev@npm:1.1.1" @@ -3850,6 +3668,22 @@ __metadata: languageName: node linkType: hard +"acorn-walk@npm:^8.3.2": + version: 8.3.2 + resolution: "acorn-walk@npm:8.3.2" + checksum: 3626b9d26a37b1b427796feaa5261faf712307a8920392c8dce9a5739fb31077667f4ad2ec71c7ac6aaf9f61f04a9d3d67ff56f459587206fc04aa31c27ef392 + languageName: node + linkType: hard + +"acorn@npm:^8.11.3": + version: 8.11.3 + resolution: "acorn@npm:8.11.3" + bin: + acorn: bin/acorn + checksum: 76d8e7d559512566b43ab4aadc374f11f563f0a9e21626dd59cb2888444e9445923ae9f3699972767f18af61df89cd89f5eaaf772d1327b055b45cb829b4a88c + languageName: node + linkType: hard + "acorn@npm:^8.4.1, acorn@npm:^8.9.0": version: 8.10.0 resolution: "acorn@npm:8.10.0" @@ -3963,7 +3797,7 @@ __metadata: languageName: node linkType: hard -"anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": +"anymatch@npm:~3.1.2": version: 3.1.3 resolution: "anymatch@npm:3.1.3" dependencies: @@ -4135,6 +3969,13 @@ __metadata: languageName: node linkType: hard +"assertion-error@npm:^1.1.0": + version: 1.1.0 + resolution: "assertion-error@npm:1.1.0" + checksum: fd9429d3a3d4fd61782eb3962ae76b6d08aa7383123fca0596020013b3ebd6647891a85b05ce821c47d1471ed1271f00b0545cf6a4326cf2fc91efcc3b0fbecf + languageName: node + linkType: hard + "astral-regex@npm:^2.0.0": version: 2.0.0 resolution: "astral-regex@npm:2.0.0" @@ -4224,82 +4065,6 @@ __metadata: languageName: node linkType: hard -"babel-jest@npm:^28.1.3": - version: 28.1.3 - resolution: "babel-jest@npm:28.1.3" - dependencies: - "@jest/transform": ^28.1.3 - "@types/babel__core": ^7.1.14 - babel-plugin-istanbul: ^6.1.1 - babel-preset-jest: ^28.1.3 - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - slash: ^3.0.0 - peerDependencies: - "@babel/core": ^7.8.0 - checksum: 57ccd2296e1839687b5df2fd138c3d00717e0369e385254b012ccd4ee70e75f5d5c8e6cfcdf92d155015b468cfebb847b38e69bb5805d8aaf730e20575127cc6 - languageName: node - linkType: hard - -"babel-plugin-istanbul@npm:^6.1.1": - version: 6.1.1 - resolution: "babel-plugin-istanbul@npm:6.1.1" - dependencies: - "@babel/helper-plugin-utils": ^7.0.0 - "@istanbuljs/load-nyc-config": ^1.0.0 - "@istanbuljs/schema": ^0.1.2 - istanbul-lib-instrument: ^5.0.4 - test-exclude: ^6.0.0 - checksum: cb4fd95738219f232f0aece1116628cccff16db891713c4ccb501cddbbf9272951a5df81f2f2658dfdf4b3e7b236a9d5cbcf04d5d8c07dd5077297339598061a - languageName: node - linkType: hard - -"babel-plugin-jest-hoist@npm:^28.1.3": - version: 28.1.3 - resolution: "babel-plugin-jest-hoist@npm:28.1.3" - dependencies: - "@babel/template": ^7.3.3 - "@babel/types": ^7.3.3 - "@types/babel__core": ^7.1.14 - "@types/babel__traverse": ^7.0.6 - checksum: 648d89f9d80f6450ce7e50d0c32eb91b7f26269b47c3e37aaf2e0f2f66a980978345bd6b8c9b8c3aa6a8252ad2bc2c9fb50630e9895622c9a0972af5f70ed20e - languageName: node - linkType: hard - -"babel-preset-current-node-syntax@npm:^1.0.0": - version: 1.0.1 - resolution: "babel-preset-current-node-syntax@npm:1.0.1" - dependencies: - "@babel/plugin-syntax-async-generators": ^7.8.4 - "@babel/plugin-syntax-bigint": ^7.8.3 - "@babel/plugin-syntax-class-properties": ^7.8.3 - "@babel/plugin-syntax-import-meta": ^7.8.3 - "@babel/plugin-syntax-json-strings": ^7.8.3 - "@babel/plugin-syntax-logical-assignment-operators": ^7.8.3 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - "@babel/plugin-syntax-numeric-separator": ^7.8.3 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - "@babel/plugin-syntax-top-level-await": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: d118c2742498c5492c095bc8541f4076b253e705b5f1ad9a2e7d302d81a84866f0070346662355c8e25fc02caa28dc2da8d69bcd67794a0d60c4d6fab6913cc8 - languageName: node - linkType: hard - -"babel-preset-jest@npm:^28.1.3": - version: 28.1.3 - resolution: "babel-preset-jest@npm:28.1.3" - dependencies: - babel-plugin-jest-hoist: ^28.1.3 - babel-preset-current-node-syntax: ^1.0.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 8248a4a5ca4242cc06ad13b10b9183ad2664da8fb0da060c352223dcf286f0ce9c708fa17901dc44ecabec25e6d309e5e5b9830a61dd777c3925f187a345a47d - languageName: node - linkType: hard - "balanced-match@npm:^1.0.0": version: 1.0.2 resolution: "balanced-match@npm:1.0.2" @@ -4418,24 +4183,6 @@ __metadata: languageName: node linkType: hard -"bs-logger@npm:0.x": - version: 0.2.6 - resolution: "bs-logger@npm:0.2.6" - dependencies: - fast-json-stable-stringify: 2.x - checksum: d34bdaf68c64bd099ab97c3ea608c9ae7d3f5faa1178b3f3f345acd94e852e608b2d4f9103fb2e503f5e69780e98293df41691b84be909b41cf5045374d54606 - languageName: node - linkType: hard - -"bser@npm:2.1.1": - version: 2.1.1 - resolution: "bser@npm:2.1.1" - dependencies: - node-int64: ^0.4.0 - checksum: 9ba4dc58ce86300c862bffc3ae91f00b2a03b01ee07f3564beeeaf82aa243b8b03ba53f123b0b842c190d4399b94697970c8e7cf7b1ea44b61aa28c3526a4449 - languageName: node - linkType: hard - "buffer-from@npm:^1.0.0": version: 1.1.2 resolution: "buffer-from@npm:1.1.2" @@ -4504,6 +4251,13 @@ __metadata: languageName: node linkType: hard +"cac@npm:^6.7.14": + version: 6.7.14 + resolution: "cac@npm:6.7.14" + checksum: 45a2496a9443abbe7f52a49b22fbe51b1905eff46e03fd5e6c98e3f85077be3f8949685a1849b1a9cd2bc3e5567dfebcf64f01ce01847baf918f1b37c839791a + languageName: node + linkType: hard + "cacache@npm:^15.0.3, cacache@npm:^15.0.5, cacache@npm:^15.2.0": version: 15.3.0 resolution: "cacache@npm:15.3.0" @@ -4637,14 +4391,7 @@ __metadata: languageName: node linkType: hard -"camelcase@npm:^5.3.1": - version: 5.3.1 - resolution: "camelcase@npm:5.3.1" - checksum: e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b - languageName: node - linkType: hard - -"camelcase@npm:^6.2.0, camelcase@npm:^6.3.0": +"camelcase@npm:^6.3.0": version: 6.3.0 resolution: "camelcase@npm:6.3.0" checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d @@ -4688,6 +4435,21 @@ __metadata: languageName: node linkType: hard +"chai@npm:^4.3.10": + version: 4.4.1 + resolution: "chai@npm:4.4.1" + dependencies: + assertion-error: ^1.1.0 + check-error: ^1.0.3 + deep-eql: ^4.1.3 + get-func-name: ^2.0.2 + loupe: ^2.3.6 + pathval: ^1.1.1 + type-detect: ^4.0.8 + checksum: 9ab84f36eb8e0b280c56c6c21ca4da5933132cd8a0c89c384f1497f77953640db0bc151edd47f81748240a9fab57b78f7d925edfeedc8e8fc98016d71f40c36e + languageName: node + linkType: hard + "chalk@npm:^2.0.0": version: 2.4.2 resolution: "chalk@npm:2.4.2" @@ -4736,13 +4498,6 @@ __metadata: languageName: node linkType: hard -"char-regex@npm:^1.0.2": - version: 1.0.2 - resolution: "char-regex@npm:1.0.2" - checksum: b563e4b6039b15213114626621e7a3d12f31008bdce20f9c741d69987f62aeaace7ec30f6018890ad77b2e9b4d95324c9f5acfca58a9441e3b1dcdd1e2525d17 - languageName: node - linkType: hard - "chardet@npm:^0.7.0": version: 0.7.0 resolution: "chardet@npm:0.7.0" @@ -4750,6 +4505,15 @@ __metadata: languageName: node linkType: hard +"check-error@npm:^1.0.3": + version: 1.0.3 + resolution: "check-error@npm:1.0.3" + dependencies: + get-func-name: ^2.0.2 + checksum: e2131025cf059b21080f4813e55b3c480419256914601750b0fee3bd9b2b8315b531e551ef12560419b8b6d92a3636511322752b1ce905703239e7cc451b6399 + languageName: node + linkType: hard + "chokidar@npm:^3.5.1": version: 3.5.3 resolution: "chokidar@npm:3.5.3" @@ -4783,13 +4547,6 @@ __metadata: languageName: node linkType: hard -"cjs-module-lexer@npm:^1.0.0": - version: 1.2.3 - resolution: "cjs-module-lexer@npm:1.2.3" - checksum: 5ea3cb867a9bb609b6d476cd86590d105f3cfd6514db38ff71f63992ab40939c2feb68967faa15a6d2b1f90daa6416b79ea2de486e9e2485a6f8b66a21b4fb0a - languageName: node - linkType: hard - "clean-regexp@npm:^1.0.0": version: 1.0.0 resolution: "clean-regexp@npm:1.0.0" @@ -4866,17 +4623,6 @@ __metadata: languageName: node linkType: hard -"cliui@npm:^8.0.1": - version: 8.0.1 - resolution: "cliui@npm:8.0.1" - dependencies: - string-width: ^4.2.0 - strip-ansi: ^6.0.1 - wrap-ansi: ^7.0.0 - checksum: 79648b3b0045f2e285b76fb2e24e207c6db44323581e421c3acbd0e86454cba1b37aea976ab50195a49e7384b871e6dfb2247ad7dec53c02454ac6497394cb56 - languageName: node - linkType: hard - "clone-buffer@npm:^1.0.0": version: 1.0.0 resolution: "clone-buffer@npm:1.0.0" @@ -4934,20 +4680,6 @@ __metadata: languageName: node linkType: hard -"co@npm:^4.6.0": - version: 4.6.0 - resolution: "co@npm:4.6.0" - checksum: 5210d9223010eb95b29df06a91116f2cf7c8e0748a9013ed853b53f362ea0e822f1e5bb054fb3cefc645239a4cf966af1f6133a3b43f40d591f3b68ed6cf0510 - languageName: node - linkType: hard - -"collect-v8-coverage@npm:^1.0.0": - version: 1.0.2 - resolution: "collect-v8-coverage@npm:1.0.2" - checksum: c10f41c39ab84629d16f9f6137bc8a63d332244383fc368caf2d2052b5e04c20cd1fd70f66fcf4e2422b84c8226598b776d39d5f2d2a51867cc1ed5d1982b4da - languageName: node - linkType: hard - "color-convert@npm:^1.9.0": version: 1.9.3 resolution: "color-convert@npm:1.9.3" @@ -5106,7 +4838,7 @@ __metadata: languageName: node linkType: hard -"convert-source-map@npm:^1.4.0, convert-source-map@npm:^1.6.0, convert-source-map@npm:^1.7.0": +"convert-source-map@npm:^1.7.0": version: 1.9.0 resolution: "convert-source-map@npm:1.9.0" checksum: dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 @@ -5272,10 +5004,12 @@ __metadata: languageName: node linkType: hard -"dedent@npm:^0.7.0": - version: 0.7.0 - resolution: "dedent@npm:0.7.0" - checksum: 87de191050d9a40dd70cad01159a0bcf05ecb59750951242070b6abf9569088684880d00ba92a955b4058804f16eeaf91d604f283929b4f614d181cd7ae633d2 +"deep-eql@npm:^4.1.3": + version: 4.1.3 + resolution: "deep-eql@npm:4.1.3" + dependencies: + type-detect: ^4.0.0 + checksum: 7f6d30cb41c713973dc07eaadded848b2ab0b835e518a88b91bea72f34e08c4c71d167a722a6f302d3a6108f05afd8e6d7650689a84d5d29ec7fe6220420397f languageName: node linkType: hard @@ -5293,13 +5027,6 @@ __metadata: languageName: node linkType: hard -"deepmerge@npm:^4.2.2": - version: 4.3.1 - resolution: "deepmerge@npm:4.3.1" - checksum: 2024c6a980a1b7128084170c4cf56b0fd58a63f2da1660dcfe977415f27b17dbe5888668b59d0b063753f3220719d5e400b7f113609489c90160bb9a5518d052 - languageName: node - linkType: hard - "defaults@npm:^1.0.3": version: 1.0.4 resolution: "defaults@npm:1.0.4" @@ -5375,13 +5102,6 @@ __metadata: languageName: node linkType: hard -"detect-newline@npm:^3.0.0": - version: 3.1.0 - resolution: "detect-newline@npm:3.1.0" - checksum: ae6cd429c41ad01b164c59ea36f264a2c479598e61cba7c99da24175a7ab80ddf066420f2bec9a1c57a6bead411b4655ff15ad7d281c000a89791f48cbe939e7 - languageName: node - linkType: hard - "detect-newline@npm:^4.0.0": version: 4.0.1 resolution: "detect-newline@npm:4.0.1" @@ -5399,10 +5119,10 @@ __metadata: languageName: node linkType: hard -"diff-sequences@npm:^28.1.1": - version: 28.1.1 - resolution: "diff-sequences@npm:28.1.1" - checksum: e2529036505567c7ca5a2dea86b6bcd1ca0e3ae63bf8ebf529b8a99cfa915bbf194b7021dc1c57361a4017a6d95578d4ceb29fabc3232a4f4cb866a2726c7690 +"diff-sequences@npm:^29.6.3": + version: 29.6.3 + resolution: "diff-sequences@npm:29.6.3" + checksum: f4914158e1f2276343d98ff5b31fc004e7304f5470bf0f1adb2ac6955d85a531a6458d33e87667f98f6ae52ebd3891bb47d420bb48a5bd8b7a27ee25b20e33aa languageName: node linkType: hard @@ -5501,13 +5221,6 @@ __metadata: languageName: node linkType: hard -"emittery@npm:^0.10.2": - version: 0.10.2 - resolution: "emittery@npm:0.10.2" - checksum: ee3e21788b043b90885b18ea756ec3105c1cedc50b29709c92b01e239c7e55345d4bb6d3aef4ddbaf528eef448a40b3bb831bad9ee0fc9c25cbf1367ab1ab5ac - languageName: node - linkType: hard - "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" @@ -5681,6 +5394,86 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:^0.19.3": + version: 0.19.12 + resolution: "esbuild@npm:0.19.12" + dependencies: + "@esbuild/aix-ppc64": 0.19.12 + "@esbuild/android-arm": 0.19.12 + "@esbuild/android-arm64": 0.19.12 + "@esbuild/android-x64": 0.19.12 + "@esbuild/darwin-arm64": 0.19.12 + "@esbuild/darwin-x64": 0.19.12 + "@esbuild/freebsd-arm64": 0.19.12 + "@esbuild/freebsd-x64": 0.19.12 + "@esbuild/linux-arm": 0.19.12 + "@esbuild/linux-arm64": 0.19.12 + "@esbuild/linux-ia32": 0.19.12 + "@esbuild/linux-loong64": 0.19.12 + "@esbuild/linux-mips64el": 0.19.12 + "@esbuild/linux-ppc64": 0.19.12 + "@esbuild/linux-riscv64": 0.19.12 + "@esbuild/linux-s390x": 0.19.12 + "@esbuild/linux-x64": 0.19.12 + "@esbuild/netbsd-x64": 0.19.12 + "@esbuild/openbsd-x64": 0.19.12 + "@esbuild/sunos-x64": 0.19.12 + "@esbuild/win32-arm64": 0.19.12 + "@esbuild/win32-ia32": 0.19.12 + "@esbuild/win32-x64": 0.19.12 + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 2936e29107b43e65a775b78b7bc66ddd7d76febd73840ac7e825fb22b65029422ff51038a08d19b05154f543584bd3afe7d1ef1c63900429475b17fbe61cb61f + languageName: node + linkType: hard + "escalade@npm:^3.1.1": version: 3.1.1 resolution: "escalade@npm:3.1.1" @@ -5709,13 +5502,6 @@ __metadata: languageName: node linkType: hard -"escape-string-regexp@npm:^2.0.0": - version: 2.0.0 - resolution: "escape-string-regexp@npm:2.0.0" - checksum: 9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395 - languageName: node - linkType: hard - "eslint-config-oclif-typescript@npm:^1.0.2": version: 1.0.3 resolution: "eslint-config-oclif-typescript@npm:1.0.3" @@ -5959,23 +5745,6 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jest@npm:^25.0.5": - version: 25.7.0 - resolution: "eslint-plugin-jest@npm:25.7.0" - dependencies: - "@typescript-eslint/experimental-utils": ^5.0.0 - peerDependencies: - "@typescript-eslint/eslint-plugin": ^4.0.0 || ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - "@typescript-eslint/eslint-plugin": - optional: true - jest: - optional: true - checksum: fc6da96131f4cbf33d15ef911ec8e600ccd71deb97d73c0ca340427cef7b01ff41a797e2e7d1e351abf97321a46ed0c0acff5ee8eeedac94961dd6dad1f718a9 - languageName: node - linkType: hard - "eslint-plugin-mocha@npm:^9.0.0": version: 9.0.0 resolution: "eslint-plugin-mocha@npm:9.0.0" @@ -6321,6 +6090,15 @@ __metadata: languageName: node linkType: hard +"estree-walker@npm:^3.0.3": + version: 3.0.3 + resolution: "estree-walker@npm:3.0.3" + dependencies: + "@types/estree": ^1.0.0 + checksum: a65728d5727b71de172c5df323385755a16c0fdab8234dc756c3854cfee343261ddfbb72a809a5660fac8c75d960bb3e21aa898c2d7e9b19bb298482ca58a3af + languageName: node + linkType: hard + "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" @@ -6390,23 +6168,20 @@ __metadata: languageName: node linkType: hard -"exit@npm:^0.1.2": - version: 0.1.2 - resolution: "exit@npm:0.1.2" - checksum: abc407f07a875c3961e4781dfcb743b58d6c93de9ab263f4f8c9d23bb6da5f9b7764fc773f86b43dd88030444d5ab8abcb611cb680fba8ca075362b77114bba3 - languageName: node - linkType: hard - -"expect@npm:^28.0.0, expect@npm:^28.1.3": - version: 28.1.3 - resolution: "expect@npm:28.1.3" +"execa@npm:^8.0.1": + version: 8.0.1 + resolution: "execa@npm:8.0.1" dependencies: - "@jest/expect-utils": ^28.1.3 - jest-get-type: ^28.0.2 - jest-matcher-utils: ^28.1.3 - jest-message-util: ^28.1.3 - jest-util: ^28.1.3 - checksum: 101e0090de300bcafedb7dbfd19223368a2251ce5fe0105bbb6de5720100b89fb6b64290ebfb42febc048324c76d6a4979cdc4b61eb77747857daf7a5de9b03d + cross-spawn: ^7.0.3 + 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: ^4.1.0 + strip-final-newline: ^3.0.0 + checksum: cac1bf86589d1d9b73bdc5dda65c52012d1a9619c44c526891956745f7b366ca2603d29fe3f7460bacc2b48c6eab5d6a4f7afe0534b31473d3708d1265545e1f languageName: node linkType: hard @@ -6476,7 +6251,7 @@ __metadata: languageName: node linkType: hard -"fast-json-stable-stringify@npm:2.x, fast-json-stable-stringify@npm:^2.0.0": +"fast-json-stable-stringify@npm:^2.0.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb @@ -6526,15 +6301,6 @@ __metadata: languageName: node linkType: hard -"fb-watchman@npm:^2.0.0": - version: 2.0.2 - resolution: "fb-watchman@npm:2.0.2" - dependencies: - bser: 2.1.1 - checksum: b15a124cef28916fe07b400eb87cbc73ca082c142abf7ca8e8de6af43eca79ca7bd13eb4d4d48240b3bd3136eaac40d16e42d6edf87a8e5d1dd8070626860c78 - languageName: node - linkType: hard - "figures@npm:^3.0.0": version: 3.2.0 resolution: "figures@npm:3.2.0" @@ -6782,7 +6548,7 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:2.3.2, fsevents@npm:^2.3.2, fsevents@npm:~2.3.2": +"fsevents@npm:2.3.2, fsevents@npm:~2.3.2": version: 2.3.2 resolution: "fsevents@npm:2.3.2" dependencies: @@ -6792,7 +6558,17 @@ __metadata: languageName: node linkType: hard -"fsevents@patch:fsevents@2.3.2#~builtin, fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin": +"fsevents@npm:~2.3.3": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" + dependencies: + node-gyp: latest + checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin": version: 2.3.2 resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=18f3a7" dependencies: @@ -6801,6 +6577,15 @@ __metadata: languageName: node linkType: hard +"fsevents@patch:fsevents@~2.3.3#~builtin": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=18f3a7" + dependencies: + node-gyp: latest + conditions: os=darwin + languageName: node + linkType: hard + "function-bind@npm:^1.1.1": version: 1.1.1 resolution: "function-bind@npm:1.1.1" @@ -6874,10 +6659,10 @@ __metadata: languageName: node linkType: hard -"get-caller-file@npm:^2.0.5": - version: 2.0.5 - resolution: "get-caller-file@npm:2.0.5" - checksum: b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 +"get-func-name@npm:^2.0.1, get-func-name@npm:^2.0.2": + version: 2.0.2 + resolution: "get-func-name@npm:2.0.2" + checksum: 3f62f4c23647de9d46e6f76d2b3eafe58933a9b3830c60669e4180d6c601ce1b4aa310ba8366143f55e52b139f992087a9f0647274e8745621fa2af7e0acf13b languageName: node linkType: hard @@ -6930,6 +6715,13 @@ __metadata: languageName: node linkType: hard +"get-stream@npm:^8.0.1": + version: 8.0.1 + resolution: "get-stream@npm:8.0.1" + checksum: 01e3d3cf29e1393f05f44d2f00445c5f9ec3d1c49e8179b31795484b9c117f4c695e5e07b88b50785d5c8248a788c85d9913a79266fc77e3ef11f78f10f1b974 + languageName: node + linkType: hard + "get-symbol-description@npm:^1.0.0": version: 1.0.0 resolution: "get-symbol-description@npm:1.0.0" @@ -7128,7 +6920,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.5, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.5, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 @@ -7169,7 +6961,6 @@ __metadata: "@types/env-ci": ^3.1.1 "@types/eslint": ^8.4.5 "@types/eslint-plugin-prettier": ^3.1.0 - "@types/jest": ^28.1.6 "@types/js-yaml": ^4.0.5 "@types/lodash": ^4.14.177 "@types/mathjs": ~9.3.2 @@ -7187,11 +6978,9 @@ __metadata: eslint-config-oclif: ^4.0.0 eslint-config-oclif-typescript: ^1.0.2 eslint-config-prettier: ^8.3.0 - eslint-plugin-jest: ^25.0.5 eslint-plugin-prettier: ^4.0.0 eslint-plugin-unicorn: ^43.0.2 globby: ^10.0.2 - jest: ^28.1.3 js-yaml: ^4.1.0 listr2: ^3.12.2 lodash: ^4.17.21 @@ -7201,10 +6990,10 @@ __metadata: playwright: 1.30.0 prettier: ^2.4.1 trace-unhandled: ^2.0.1 - ts-jest: ^28.0.7 ts-node: ^10.9.2 ts-node-dev: ^2.0.0 typescript: ^5.4.2 + vitest: ^1.3.1 wait-on: ^6.0.0 xo: ^0.52.3 bin: @@ -7357,13 +7146,6 @@ __metadata: languageName: node linkType: hard -"html-escaper@npm:^2.0.0": - version: 2.0.2 - resolution: "html-escaper@npm:2.0.2" - checksum: d2df2da3ad40ca9ee3a39c5cc6475ef67c8f83c234475f24d8e9ce0dc80a2c82df8e1d6fa78ddd1e9022a586ea1bd247a615e80a5cd9273d90111ddda7d9e974 - languageName: node - linkType: hard - "http-cache-semantics@npm:^4.0.0, http-cache-semantics@npm:^4.1.0, http-cache-semantics@npm:^4.1.1": version: 4.1.1 resolution: "http-cache-semantics@npm:4.1.1" @@ -7445,6 +7227,13 @@ __metadata: languageName: node linkType: hard +"human-signals@npm:^5.0.0": + version: 5.0.0 + resolution: "human-signals@npm:5.0.0" + checksum: 6504560d5ed91444f16bea3bd9dfc66110a339442084e56c3e7fa7bbdf3f406426d6563d662bdce67064b165eac31eeabfc0857ed170aaa612cf14ec9f9a464c + languageName: node + linkType: hard + "humanize-ms@npm:^1.2.1": version: 1.2.1 resolution: "humanize-ms@npm:1.2.1" @@ -7528,18 +7317,6 @@ __metadata: languageName: node linkType: hard -"import-local@npm:^3.0.2": - version: 3.1.0 - resolution: "import-local@npm:3.1.0" - dependencies: - pkg-dir: ^4.2.0 - resolve-cwd: ^3.0.0 - bin: - import-local-fixture: fixtures/cli.js - checksum: bfcdb63b5e3c0e245e347f3107564035b128a414c4da1172a20dc67db2504e05ede4ac2eee1252359f78b0bfd7b19ef180aec427c2fce6493ae782d73a04cddd - languageName: node - linkType: hard - "import-meta-resolve@npm:2.2.2": version: 2.2.2 resolution: "import-meta-resolve@npm:2.2.2" @@ -7784,13 +7561,6 @@ __metadata: languageName: node linkType: hard -"is-generator-fn@npm:^2.0.0": - version: 2.1.0 - resolution: "is-generator-fn@npm:2.1.0" - checksum: a6ad5492cf9d1746f73b6744e0c43c0020510b59d56ddcb78a91cbc173f09b5e6beff53d75c9c5a29feb618bfef2bf458e025ecf3a57ad2268e2fb2569f56215 - languageName: node - linkType: hard - "is-generator-function@npm:^1.0.7": version: 1.0.10 resolution: "is-generator-function@npm:1.0.10" @@ -7978,6 +7748,13 @@ __metadata: languageName: node linkType: hard +"is-stream@npm:^3.0.0": + version: 3.0.0 + resolution: "is-stream@npm:3.0.0" + checksum: 172093fe99119ffd07611ab6d1bcccfe8bc4aa80d864b15f43e63e54b7abc71e779acd69afdb854c4e2a67fdc16ae710e370eda40088d1cfc956a50ed82d8f16 + languageName: node + linkType: hard + "is-string@npm:^1.0.5, is-string@npm:^1.0.7": version: 1.0.7 resolution: "is-string@npm:1.0.7" @@ -8108,58 +7885,6 @@ __metadata: languageName: node linkType: hard -"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": - version: 3.2.0 - resolution: "istanbul-lib-coverage@npm:3.2.0" - checksum: a2a545033b9d56da04a8571ed05c8120bf10e9bce01cf8633a3a2b0d1d83dff4ac4fe78d6d5673c27fc29b7f21a41d75f83a36be09f82a61c367b56aa73c1ff9 - languageName: node - linkType: hard - -"istanbul-lib-instrument@npm:^5.0.4, istanbul-lib-instrument@npm:^5.1.0": - version: 5.2.1 - resolution: "istanbul-lib-instrument@npm:5.2.1" - dependencies: - "@babel/core": ^7.12.3 - "@babel/parser": ^7.14.7 - "@istanbuljs/schema": ^0.1.2 - istanbul-lib-coverage: ^3.2.0 - semver: ^6.3.0 - checksum: bf16f1803ba5e51b28bbd49ed955a736488381e09375d830e42ddeb403855b2006f850711d95ad726f2ba3f1ae8e7366de7e51d2b9ac67dc4d80191ef7ddf272 - languageName: node - linkType: hard - -"istanbul-lib-report@npm:^3.0.0": - version: 3.0.0 - resolution: "istanbul-lib-report@npm:3.0.0" - dependencies: - istanbul-lib-coverage: ^3.0.0 - make-dir: ^3.0.0 - supports-color: ^7.1.0 - checksum: 3f29eb3f53c59b987386e07fe772d24c7f58c6897f34c9d7a296f4000de7ae3de9eb95c3de3df91dc65b134c84dee35c54eee572a56243e8907c48064e34ff1b - languageName: node - linkType: hard - -"istanbul-lib-source-maps@npm:^4.0.0": - version: 4.0.1 - resolution: "istanbul-lib-source-maps@npm:4.0.1" - dependencies: - debug: ^4.1.1 - istanbul-lib-coverage: ^3.0.0 - source-map: ^0.6.1 - checksum: 21ad3df45db4b81852b662b8d4161f6446cd250c1ddc70ef96a585e2e85c26ed7cd9c2a396a71533cfb981d1a645508bc9618cae431e55d01a0628e7dec62ef2 - languageName: node - linkType: hard - -"istanbul-reports@npm:^3.1.3": - version: 3.1.5 - resolution: "istanbul-reports@npm:3.1.5" - dependencies: - html-escaper: ^2.0.0 - istanbul-lib-report: ^3.0.0 - checksum: 7867228f83ed39477b188ea07e7ccb9b4f5320b6f73d1db93a0981b7414fa4ef72d3f80c4692c442f90fc250d9406e71d8d7ab65bb615cb334e6292b73192b89 - languageName: node - linkType: hard - "jackspeak@npm:^2.0.3": version: 2.2.1 resolution: "jackspeak@npm:2.2.1" @@ -8201,445 +7926,6 @@ __metadata: languageName: node linkType: hard -"jest-changed-files@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-changed-files@npm:28.1.3" - dependencies: - execa: ^5.0.0 - p-limit: ^3.1.0 - checksum: c78af14a68b9b19101623ae7fde15a2488f9b3dbe8cca12a05c4a223bc9bfd3bf41ee06830f20fb560c52434435d6153c9cc6cf450b1f7b03e5e7f96a953a6a6 - languageName: node - linkType: hard - -"jest-circus@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-circus@npm:28.1.3" - dependencies: - "@jest/environment": ^28.1.3 - "@jest/expect": ^28.1.3 - "@jest/test-result": ^28.1.3 - "@jest/types": ^28.1.3 - "@types/node": "*" - chalk: ^4.0.0 - co: ^4.6.0 - dedent: ^0.7.0 - is-generator-fn: ^2.0.0 - jest-each: ^28.1.3 - jest-matcher-utils: ^28.1.3 - jest-message-util: ^28.1.3 - jest-runtime: ^28.1.3 - jest-snapshot: ^28.1.3 - jest-util: ^28.1.3 - p-limit: ^3.1.0 - pretty-format: ^28.1.3 - slash: ^3.0.0 - stack-utils: ^2.0.3 - checksum: b635e60a9c92adaefc3f24def8eba691e7c2fdcf6c9fa640cddf2eb8c8b26ee62eab73ebb88798fd7c52a74c1495a984e39b748429b610426f02e9d3d56e09b2 - languageName: node - linkType: hard - -"jest-cli@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-cli@npm:28.1.3" - dependencies: - "@jest/core": ^28.1.3 - "@jest/test-result": ^28.1.3 - "@jest/types": ^28.1.3 - chalk: ^4.0.0 - exit: ^0.1.2 - graceful-fs: ^4.2.9 - import-local: ^3.0.2 - jest-config: ^28.1.3 - jest-util: ^28.1.3 - jest-validate: ^28.1.3 - prompts: ^2.0.1 - yargs: ^17.3.1 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - bin: - jest: bin/jest.js - checksum: fb424576bf38346318daddee3fcc597cd78cb8dda1759d09c529d8ba1a748f2765c17b00671072a838826e59465a810ff8a232bc6ba2395c131bf3504425a363 - languageName: node - linkType: hard - -"jest-config@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-config@npm:28.1.3" - dependencies: - "@babel/core": ^7.11.6 - "@jest/test-sequencer": ^28.1.3 - "@jest/types": ^28.1.3 - babel-jest: ^28.1.3 - chalk: ^4.0.0 - ci-info: ^3.2.0 - deepmerge: ^4.2.2 - glob: ^7.1.3 - graceful-fs: ^4.2.9 - jest-circus: ^28.1.3 - jest-environment-node: ^28.1.3 - jest-get-type: ^28.0.2 - jest-regex-util: ^28.0.2 - jest-resolve: ^28.1.3 - jest-runner: ^28.1.3 - jest-util: ^28.1.3 - jest-validate: ^28.1.3 - micromatch: ^4.0.4 - parse-json: ^5.2.0 - pretty-format: ^28.1.3 - slash: ^3.0.0 - strip-json-comments: ^3.1.1 - peerDependencies: - "@types/node": "*" - ts-node: ">=9.0.0" - peerDependenciesMeta: - "@types/node": - optional: true - ts-node: - optional: true - checksum: ddabffd3a3a8cb6c2f58f06cdf3535157dbf8c70bcde3e5c3de7bee6a8d617840ffc8cffb0083e38c6814f2a08c225ca19f58898efaf4f351af94679f22ce6bc - languageName: node - linkType: hard - -"jest-diff@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-diff@npm:28.1.3" - dependencies: - chalk: ^4.0.0 - diff-sequences: ^28.1.1 - jest-get-type: ^28.0.2 - pretty-format: ^28.1.3 - checksum: fa8583e0ccbe775714ce850b009be1b0f6b17a4b6759f33ff47adef27942ebc610dbbcc8a5f7cfb7f12b3b3b05afc9fb41d5f766674616025032ff1e4f9866e0 - languageName: node - linkType: hard - -"jest-docblock@npm:^28.1.1": - version: 28.1.1 - resolution: "jest-docblock@npm:28.1.1" - dependencies: - detect-newline: ^3.0.0 - checksum: 22fca68d988ecb2933bc65f448facdca85fc71b4bd0a188ea09a5ae1b0cc3a049a2a6ec7e7eaa2542c1d5cb5e5145e420a3df4fa280f5070f486c44da1d36151 - languageName: node - linkType: hard - -"jest-each@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-each@npm:28.1.3" - dependencies: - "@jest/types": ^28.1.3 - chalk: ^4.0.0 - jest-get-type: ^28.0.2 - jest-util: ^28.1.3 - pretty-format: ^28.1.3 - checksum: 5c5b8ccb1484e58b027bea682cfa020a45e5bf5379cc7c23bdec972576c1dc3c3bf03df2b78416cefc1a58859dd33b7cf5fff54c370bc3c0f14a3e509eb87282 - languageName: node - linkType: hard - -"jest-environment-node@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-environment-node@npm:28.1.3" - dependencies: - "@jest/environment": ^28.1.3 - "@jest/fake-timers": ^28.1.3 - "@jest/types": ^28.1.3 - "@types/node": "*" - jest-mock: ^28.1.3 - jest-util: ^28.1.3 - checksum: 1048fe306a6a8b0880a4c66278ebb57479f29c12cff89aab3aa79ab77a8859cf17ab8aa9919fd21c329a7db90e35581b43664e694ad453d5b04e00f3c6420469 - languageName: node - linkType: hard - -"jest-get-type@npm:^28.0.2": - version: 28.0.2 - resolution: "jest-get-type@npm:28.0.2" - checksum: 5281d7c89bc8156605f6d15784f45074f4548501195c26e9b188742768f72d40948252d13230ea905b5349038865a1a8eeff0e614cc530ff289dfc41fe843abd - languageName: node - linkType: hard - -"jest-haste-map@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-haste-map@npm:28.1.3" - dependencies: - "@jest/types": ^28.1.3 - "@types/graceful-fs": ^4.1.3 - "@types/node": "*" - anymatch: ^3.0.3 - fb-watchman: ^2.0.0 - fsevents: ^2.3.2 - graceful-fs: ^4.2.9 - jest-regex-util: ^28.0.2 - jest-util: ^28.1.3 - jest-worker: ^28.1.3 - micromatch: ^4.0.4 - walker: ^1.0.8 - dependenciesMeta: - fsevents: - optional: true - checksum: d05fdc108645fc2b39fcd4001952cc7a8cb550e93494e98c1e9ab1fc542686f6ac67177c132e564cf94fe8f81503f3f8db8b825b9b713dc8c5748aec63ba4688 - languageName: node - linkType: hard - -"jest-leak-detector@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-leak-detector@npm:28.1.3" - dependencies: - jest-get-type: ^28.0.2 - pretty-format: ^28.1.3 - checksum: 2e976a4880cf9af11f53a19f6a3820e0f90b635a900737a5427fc42e337d5628ba446dcd7c020ecea3806cf92bc0bbf6982ed62a9cd84e5a13d8751aa30fbbb7 - languageName: node - linkType: hard - -"jest-matcher-utils@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-matcher-utils@npm:28.1.3" - dependencies: - chalk: ^4.0.0 - jest-diff: ^28.1.3 - jest-get-type: ^28.0.2 - pretty-format: ^28.1.3 - checksum: 6b34f0cf66f6781e92e3bec97bf27796bd2ba31121e5c5997218d9adba6deea38a30df5203937d6785b68023ed95cbad73663cc9aad6fb0cb59aeb5813a58daf - languageName: node - linkType: hard - -"jest-message-util@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-message-util@npm:28.1.3" - dependencies: - "@babel/code-frame": ^7.12.13 - "@jest/types": ^28.1.3 - "@types/stack-utils": ^2.0.0 - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - micromatch: ^4.0.4 - pretty-format: ^28.1.3 - slash: ^3.0.0 - stack-utils: ^2.0.3 - checksum: 1f266854166dcc6900d75a88b54a25225a2f3710d463063ff1c99021569045c35c7d58557b25447a17eb3a65ce763b2f9b25550248b468a9d4657db365f39e96 - languageName: node - linkType: hard - -"jest-mock@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-mock@npm:28.1.3" - dependencies: - "@jest/types": ^28.1.3 - "@types/node": "*" - checksum: a573bf8e5f12f4c29c661266c31b5c6b69a28d3195b83049983bce025b2b1a0152351567e89e63b102ef817034c2a3aa97eda4e776f3bae2aee54c5765573aa7 - languageName: node - linkType: hard - -"jest-pnp-resolver@npm:^1.2.2": - version: 1.2.3 - resolution: "jest-pnp-resolver@npm:1.2.3" - peerDependencies: - jest-resolve: "*" - peerDependenciesMeta: - jest-resolve: - optional: true - checksum: db1a8ab2cb97ca19c01b1cfa9a9c8c69a143fde833c14df1fab0766f411b1148ff0df878adea09007ac6a2085ec116ba9a996a6ad104b1e58c20adbf88eed9b2 - languageName: node - linkType: hard - -"jest-regex-util@npm:^28.0.2": - version: 28.0.2 - resolution: "jest-regex-util@npm:28.0.2" - checksum: 0ea8c5c82ec88bc85e273c0ec82e0c0f35f7a1e2d055070e50f0cc2a2177f848eec55f73e37ae0d045c3db5014c42b2f90ac62c1ab3fdb354d2abd66a9e08add - languageName: node - linkType: hard - -"jest-resolve-dependencies@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-resolve-dependencies@npm:28.1.3" - dependencies: - jest-regex-util: ^28.0.2 - jest-snapshot: ^28.1.3 - checksum: 4eea9ec33aefc1c71dc5956391efbcc7be76bda986b366ab3931d99c5f7ed01c9ebd7520e405ea2c76e1bb2c7ce504be6eca2b9831df16564d1e625500f3bfe7 - languageName: node - linkType: hard - -"jest-resolve@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-resolve@npm:28.1.3" - dependencies: - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - jest-haste-map: ^28.1.3 - jest-pnp-resolver: ^1.2.2 - jest-util: ^28.1.3 - jest-validate: ^28.1.3 - resolve: ^1.20.0 - resolve.exports: ^1.1.0 - slash: ^3.0.0 - checksum: df61a490c93f4f4cf52135e43d6a4fcacb07b0b7d4acc6319e9289529c1d14f2d8e1638e095dbf96f156834802755e38db68caca69dba21a3261ee711d4426b6 - languageName: node - linkType: hard - -"jest-runner@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-runner@npm:28.1.3" - dependencies: - "@jest/console": ^28.1.3 - "@jest/environment": ^28.1.3 - "@jest/test-result": ^28.1.3 - "@jest/transform": ^28.1.3 - "@jest/types": ^28.1.3 - "@types/node": "*" - chalk: ^4.0.0 - emittery: ^0.10.2 - graceful-fs: ^4.2.9 - jest-docblock: ^28.1.1 - jest-environment-node: ^28.1.3 - jest-haste-map: ^28.1.3 - jest-leak-detector: ^28.1.3 - jest-message-util: ^28.1.3 - jest-resolve: ^28.1.3 - jest-runtime: ^28.1.3 - jest-util: ^28.1.3 - jest-watcher: ^28.1.3 - jest-worker: ^28.1.3 - p-limit: ^3.1.0 - source-map-support: 0.5.13 - checksum: 32405cd970fa6b11e039192dae699fd1bcc6f61f67d50605af81d193f24dd4373b25f5fcc1c571a028ec1b02174e8a4b6d0d608772063fb06f08a5105693533b - languageName: node - linkType: hard - -"jest-runtime@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-runtime@npm:28.1.3" - dependencies: - "@jest/environment": ^28.1.3 - "@jest/fake-timers": ^28.1.3 - "@jest/globals": ^28.1.3 - "@jest/source-map": ^28.1.2 - "@jest/test-result": ^28.1.3 - "@jest/transform": ^28.1.3 - "@jest/types": ^28.1.3 - chalk: ^4.0.0 - cjs-module-lexer: ^1.0.0 - collect-v8-coverage: ^1.0.0 - execa: ^5.0.0 - glob: ^7.1.3 - graceful-fs: ^4.2.9 - jest-haste-map: ^28.1.3 - jest-message-util: ^28.1.3 - jest-mock: ^28.1.3 - jest-regex-util: ^28.0.2 - jest-resolve: ^28.1.3 - jest-snapshot: ^28.1.3 - jest-util: ^28.1.3 - slash: ^3.0.0 - strip-bom: ^4.0.0 - checksum: b17c40af858e74dafa4f515ef3711c1e9ef3d4ad7d74534ee0745422534bc04fd166d4eceb62a3aa7dc951505d6f6d2a81d16e90bebb032be409ec0500974a36 - languageName: node - linkType: hard - -"jest-snapshot@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-snapshot@npm:28.1.3" - dependencies: - "@babel/core": ^7.11.6 - "@babel/generator": ^7.7.2 - "@babel/plugin-syntax-typescript": ^7.7.2 - "@babel/traverse": ^7.7.2 - "@babel/types": ^7.3.3 - "@jest/expect-utils": ^28.1.3 - "@jest/transform": ^28.1.3 - "@jest/types": ^28.1.3 - "@types/babel__traverse": ^7.0.6 - "@types/prettier": ^2.1.5 - babel-preset-current-node-syntax: ^1.0.0 - chalk: ^4.0.0 - expect: ^28.1.3 - graceful-fs: ^4.2.9 - jest-diff: ^28.1.3 - jest-get-type: ^28.0.2 - jest-haste-map: ^28.1.3 - jest-matcher-utils: ^28.1.3 - jest-message-util: ^28.1.3 - jest-util: ^28.1.3 - natural-compare: ^1.4.0 - pretty-format: ^28.1.3 - semver: ^7.3.5 - checksum: 2a46a5493f1fb50b0a236a21f25045e7f46a244f9f3ae37ef4fbcd40249d0d68bb20c950ce77439e4e2cac985b05c3061c90b34739bf6069913a1199c8c716e1 - languageName: node - linkType: hard - -"jest-util@npm:^28.0.0, jest-util@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-util@npm:28.1.3" - dependencies: - "@jest/types": ^28.1.3 - "@types/node": "*" - chalk: ^4.0.0 - ci-info: ^3.2.0 - graceful-fs: ^4.2.9 - picomatch: ^2.2.3 - checksum: fd6459742c941f070223f25e38a2ac0719aad92561591e9fb2a50d602a5d19d754750b79b4074327a42b00055662b95da3b006542ceb8b54309da44d4a62e721 - languageName: node - linkType: hard - -"jest-validate@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-validate@npm:28.1.3" - dependencies: - "@jest/types": ^28.1.3 - camelcase: ^6.2.0 - chalk: ^4.0.0 - jest-get-type: ^28.0.2 - leven: ^3.1.0 - pretty-format: ^28.1.3 - checksum: 95e0513b3803c3372a145cda86edbdb33d9dfeaa18818176f2d581e821548ceac9a179f065b6d4671a941de211354efd67f1fff8789a4fb89962565c85f646db - languageName: node - linkType: hard - -"jest-watcher@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-watcher@npm:28.1.3" - dependencies: - "@jest/test-result": ^28.1.3 - "@jest/types": ^28.1.3 - "@types/node": "*" - ansi-escapes: ^4.2.1 - chalk: ^4.0.0 - emittery: ^0.10.2 - jest-util: ^28.1.3 - string-length: ^4.0.1 - checksum: 8f6d674a4865e7df251f71544f1b51f06fd36b5a3a61f2ac81aeb81fa2a196be354fba51d0f97911c88f67cd254583b3a22ee124bf2c5b6ee2fadec27356c207 - languageName: node - linkType: hard - -"jest-worker@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-worker@npm:28.1.3" - dependencies: - "@types/node": "*" - merge-stream: ^2.0.0 - supports-color: ^8.0.0 - checksum: e921c9a1b8f0909da9ea07dbf3592f95b653aef3a8bb0cbcd20fc7f9a795a1304adecac31eecb308992c167e8d7e75c522061fec38a5928ace0f9571c90169ca - languageName: node - linkType: hard - -"jest@npm:^28.1.3": - version: 28.1.3 - resolution: "jest@npm:28.1.3" - dependencies: - "@jest/core": ^28.1.3 - "@jest/types": ^28.1.3 - import-local: ^3.0.2 - jest-cli: ^28.1.3 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - bin: - jest: bin/jest.js - checksum: b9dcb542eb7c16261c281cdc2bf37155dbb3f1205bae0b567f05051db362c85ddd4b765f126591efb88f6d298eb10336d0aa6c7d5373b4d53f918137a9a70182 - languageName: node - linkType: hard - "jmespath@npm:0.16.0": version: 0.16.0 resolution: "jmespath@npm:0.16.0" @@ -8674,6 +7960,13 @@ __metadata: languageName: node linkType: hard +"js-tokens@npm:^8.0.2": + version: 8.0.3 + resolution: "js-tokens@npm:8.0.3" + checksum: b749c808290ec1932fdf5486412074c64da6f48387a89d58f00e84058db89a7707f62d2a066fd673030dd6776bf656b50f6e0fa34135f9b3cacccde39a508977 + languageName: node + linkType: hard + "js-types@npm:^1.0.0": version: 1.0.0 resolution: "js-types@npm:1.0.0" @@ -8681,7 +7974,7 @@ __metadata: languageName: node linkType: hard -"js-yaml@npm:^3.13.0, js-yaml@npm:^3.13.1, js-yaml@npm:^3.14.1": +"js-yaml@npm:^3.13.0, js-yaml@npm:^3.14.1": version: 3.14.1 resolution: "js-yaml@npm:3.14.1" dependencies: @@ -8803,6 +8096,13 @@ __metadata: languageName: node linkType: hard +"jsonc-parser@npm:^3.2.0": + version: 3.2.1 + resolution: "jsonc-parser@npm:3.2.1" + checksum: 656d9027b91de98d8ab91b3aa0d0a4cab7dc798a6830845ca664f3e76c82d46b973675bbe9b500fae1de37fd3e81aceacbaa2a57884bf2f8f29192150d2d1ef7 + languageName: node + linkType: hard + "jsonfile@npm:^4.0.0": version: 4.0.0 resolution: "jsonfile@npm:4.0.0" @@ -8871,20 +8171,6 @@ __metadata: languageName: node linkType: hard -"kleur@npm:^3.0.3": - version: 3.0.3 - resolution: "kleur@npm:3.0.3" - checksum: df82cd1e172f957bae9c536286265a5cdbd5eeca487cb0a3b2a7b41ef959fc61f8e7c0e9aeea9c114ccf2c166b6a8dd45a46fd619c1c569d210ecd2765ad5169 - languageName: node - linkType: hard - -"leven@npm:^3.1.0": - version: 3.1.0 - resolution: "leven@npm:3.1.0" - checksum: 638401d534585261b6003db9d99afd244dfe82d75ddb6db5c0df412842d5ab30b2ef18de471aaec70fe69a46f17b4ae3c7f01d8a4e6580ef7adb9f4273ad1e55 - languageName: node - linkType: hard - "levn@npm:^0.4.1": version: 0.4.1 resolution: "levn@npm:0.4.1" @@ -8944,6 +8230,16 @@ __metadata: languageName: node linkType: hard +"local-pkg@npm:^0.5.0": + version: 0.5.0 + resolution: "local-pkg@npm:0.5.0" + dependencies: + mlly: ^1.4.2 + pkg-types: ^1.0.3 + checksum: b0a6931e588ad4f7bf4ab49faacf49e07fc4d05030f895aa055d46727a15b99300d39491cf2c3e3f05284aec65565fb760debb74c32e64109f4a101f9300d81a + languageName: node + linkType: hard + "locate-path@npm:^5.0.0": version: 5.0.0 resolution: "locate-path@npm:5.0.0" @@ -8985,13 +8281,6 @@ __metadata: languageName: node linkType: hard -"lodash.memoize@npm:4.x": - version: 4.1.2 - resolution: "lodash.memoize@npm:4.1.2" - checksum: 9ff3942feeccffa4f1fafa88d32f0d24fdc62fd15ded5a74a5f950ff5f0c6f61916157246744c620173dddf38d37095a92327d5fd3861e2063e736a5c207d089 - languageName: node - linkType: hard - "lodash.merge@npm:^4.6.2": version: 4.6.2 resolution: "lodash.merge@npm:4.6.2" @@ -9047,6 +8336,15 @@ __metadata: languageName: node linkType: hard +"loupe@npm:^2.3.6, loupe@npm:^2.3.7": + version: 2.3.7 + resolution: "loupe@npm:2.3.7" + dependencies: + get-func-name: ^2.0.1 + checksum: 96c058ec7167598e238bb7fb9def2f9339215e97d6685d9c1e3e4bdb33d14600e11fe7a812cf0c003dfb73ca2df374f146280b2287cae9e8d989e9d7a69a203b + languageName: node + linkType: hard + "lower-case@npm:^2.0.2": version: 2.0.2 resolution: "lower-case@npm:2.0.2" @@ -9109,6 +8407,15 @@ __metadata: languageName: node linkType: hard +"magic-string@npm:^0.30.5": + version: 0.30.8 + resolution: "magic-string@npm:0.30.8" + dependencies: + "@jridgewell/sourcemap-codec": ^1.4.15 + checksum: 79922f4500d3932bb587a04440d98d040170decf432edc0f91c0bf8d41db16d364189bf800e334170ac740918feda62cd39dcc170c337dc18050cfcf00a5f232 + languageName: node + linkType: hard + "make-dir@npm:^3.0.0, make-dir@npm:^3.0.2": version: 3.1.0 resolution: "make-dir@npm:3.1.0" @@ -9118,7 +8425,7 @@ __metadata: languageName: node linkType: hard -"make-error@npm:1.x, make-error@npm:^1.1.1": +"make-error@npm:^1.1.1": version: 1.3.6 resolution: "make-error@npm:1.3.6" checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 @@ -9196,15 +8503,6 @@ __metadata: languageName: node linkType: hard -"makeerror@npm:1.0.12": - version: 1.0.12 - resolution: "makeerror@npm:1.0.12" - dependencies: - tmpl: 1.0.5 - checksum: b38a025a12c8146d6eeea5a7f2bf27d51d8ad6064da8ca9405fcf7bf9b54acd43e3b30ddd7abb9b1bfa4ddb266019133313482570ddb207de568f71ecfcf6060 - languageName: node - linkType: hard - "map-obj@npm:^1.0.0": version: 1.0.1 resolution: "map-obj@npm:1.0.1" @@ -9354,6 +8652,13 @@ __metadata: languageName: node linkType: hard +"mimic-fn@npm:^4.0.0": + version: 4.0.0 + resolution: "mimic-fn@npm:4.0.0" + checksum: 995dcece15ee29aa16e188de6633d43a3db4611bcf93620e7e62109ec41c79c0f34277165b8ce5e361205049766e371851264c21ac64ca35499acb5421c2ba56 + languageName: node + linkType: hard + "mimic-response@npm:^1.0.0": version: 1.0.1 resolution: "mimic-response@npm:1.0.1" @@ -9573,6 +8878,18 @@ __metadata: languageName: node linkType: hard +"mlly@npm:^1.2.0, mlly@npm:^1.4.2": + version: 1.6.1 + resolution: "mlly@npm:1.6.1" + dependencies: + acorn: ^8.11.3 + pathe: ^1.1.2 + pkg-types: ^1.0.3 + ufo: ^1.3.2 + checksum: c40a547dba8f6b2a5a840899d49f4c9550c233d47fd7bd75f4ac27f388047bad655ad86684329809c1640df4373b45bec77304f73530ca4354bc1199700e2a46 + languageName: node + linkType: hard + "ms@npm:2.1.2": version: 2.1.2 resolution: "ms@npm:2.1.2" @@ -9614,6 +8931,15 @@ __metadata: languageName: node linkType: hard +"nanoid@npm:^3.3.7": + version: 3.3.7 + resolution: "nanoid@npm:3.3.7" + bin: + nanoid: bin/nanoid.cjs + checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2 + languageName: node + linkType: hard + "natural-compare-lite@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare-lite@npm:1.4.0" @@ -9707,13 +9033,6 @@ __metadata: languageName: node linkType: hard -"node-int64@npm:^0.4.0": - version: 0.4.0 - resolution: "node-int64@npm:0.4.0" - checksum: d0b30b1ee6d961851c60d5eaa745d30b5c95d94bc0e74b81e5292f7c42a49e3af87f1eb9e89f59456f80645d679202537de751b7d72e9e40ceea40c5e449057e - languageName: node - linkType: hard - "node-releases@npm:^2.0.12": version: 2.0.13 resolution: "node-releases@npm:2.0.13" @@ -9958,6 +9277,15 @@ __metadata: languageName: node linkType: hard +"npm-run-path@npm:^5.1.0": + version: 5.3.0 + resolution: "npm-run-path@npm:5.3.0" + dependencies: + path-key: ^4.0.0 + checksum: ae8e7a89da9594fb9c308f6555c73f618152340dcaae423e5fb3620026fefbec463618a8b761920382d666fa7a2d8d240b6fe320e8a6cdd54dc3687e2b659d25 + languageName: node + linkType: hard + "npmlog@npm:^5.0.1": version: 5.0.1 resolution: "npmlog@npm:5.0.1" @@ -10109,6 +9437,15 @@ __metadata: languageName: node linkType: hard +"onetime@npm:^6.0.0": + version: 6.0.0 + resolution: "onetime@npm:6.0.0" + dependencies: + mimic-fn: ^4.0.0 + checksum: 0846ce78e440841335d4e9182ef69d5762e9f38aa7499b19f42ea1c4cd40f0b4446094c455c713f9adac3f4ae86f613bb5e30c99e52652764d06a89f709b3788 + languageName: node + linkType: hard + "open-editor@npm:^4.0.0": version: 4.0.0 resolution: "open-editor@npm:4.0.0" @@ -10205,7 +9542,7 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:^3.0.2, p-limit@npm:^3.1.0": +"p-limit@npm:^3.0.2": version: 3.1.0 resolution: "p-limit@npm:3.1.0" dependencies: @@ -10223,6 +9560,15 @@ __metadata: languageName: node linkType: hard +"p-limit@npm:^5.0.0": + version: 5.0.0 + resolution: "p-limit@npm:5.0.0" + dependencies: + yocto-queue: ^1.0.0 + checksum: 87bf5837dee6942f0dbeff318436179931d9a97848d1b07dbd86140a477a5d2e6b90d9701b210b4e21fe7beaea2979dfde366e4f576fa644a59bd4d6a6371da7 + languageName: node + linkType: hard + "p-locate@npm:^4.1.0": version: 4.1.0 resolution: "p-locate@npm:4.1.0" @@ -10462,6 +9808,13 @@ __metadata: languageName: node linkType: hard +"path-key@npm:^4.0.0": + version: 4.0.0 + resolution: "path-key@npm:4.0.0" + checksum: 8e6c314ae6d16b83e93032c61020129f6f4484590a777eed709c4a01b50e498822b00f76ceaf94bc64dbd90b327df56ceadce27da3d83393790f1219e07721d7 + languageName: node + linkType: hard + "path-parse@npm:^1.0.7": version: 1.0.7 resolution: "path-parse@npm:1.0.7" @@ -10486,6 +9839,20 @@ __metadata: languageName: node linkType: hard +"pathe@npm:^1.1.0, pathe@npm:^1.1.1, pathe@npm:^1.1.2": + version: 1.1.2 + resolution: "pathe@npm:1.1.2" + checksum: ec5f778d9790e7b9ffc3e4c1df39a5bb1ce94657a4e3ad830c1276491ca9d79f189f47609884671db173400256b005f4955f7952f52a2aeb5834ad5fb4faf134 + languageName: node + linkType: hard + +"pathval@npm:^1.1.1": + version: 1.1.1 + resolution: "pathval@npm:1.1.1" + checksum: 090e3147716647fb7fb5b4b8c8e5b55e5d0a6086d085b6cd23f3d3c01fcf0ff56fd3cc22f2f4a033bd2e46ed55d61ed8379e123b42afe7d531a2a5fc8bb556d6 + languageName: node + linkType: hard + "performance-now@npm:^2.1.0": version: 2.1.0 resolution: "performance-now@npm:2.1.0" @@ -10500,7 +9867,7 @@ __metadata: languageName: node linkType: hard -"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf @@ -10521,13 +9888,6 @@ __metadata: languageName: node linkType: hard -"pirates@npm:^4.0.4": - version: 4.0.6 - resolution: "pirates@npm:4.0.6" - checksum: 46a65fefaf19c6f57460388a5af9ab81e3d7fd0e7bc44ca59d753cb5c4d0df97c6c6e583674869762101836d68675f027d60f841c105d72734df9dfca97cbcc6 - languageName: node - linkType: hard - "pkg-dir@npm:^4.1.0, pkg-dir@npm:^4.2.0": version: 4.2.0 resolution: "pkg-dir@npm:4.2.0" @@ -10546,6 +9906,17 @@ __metadata: languageName: node linkType: hard +"pkg-types@npm:^1.0.3": + version: 1.0.3 + resolution: "pkg-types@npm:1.0.3" + dependencies: + jsonc-parser: ^3.2.0 + mlly: ^1.2.0 + pathe: ^1.1.0 + checksum: 4b305c834b912ddcc8a0fe77530c0b0321fe340396f84cbb87aecdbc126606f47f2178f23b8639e71a4870f9631c7217aef52ffed0ae17ea2dbbe7e43d116a6e + languageName: node + linkType: hard + "playwright-core@npm:1.30.0": version: 1.30.0 resolution: "playwright-core@npm:1.30.0" @@ -10591,6 +9962,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.4.35": + version: 8.4.35 + resolution: "postcss@npm:8.4.35" + dependencies: + nanoid: ^3.3.7 + picocolors: ^1.0.0 + source-map-js: ^1.0.2 + checksum: cf3c3124d3912a507603f6d9a49b3783f741075e9aa73eb592a6dd9194f9edab9d20a8875d16d137d4f779fe7b6fbd1f5727e39bfd1c3003724980ee4995e1da + languageName: node + linkType: hard + "preferred-pm@npm:^3.0.3": version: 3.0.3 resolution: "preferred-pm@npm:3.0.3" @@ -10635,15 +10017,14 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^28.0.0, pretty-format@npm:^28.1.3": - version: 28.1.3 - resolution: "pretty-format@npm:28.1.3" +"pretty-format@npm:^29.7.0": + version: 29.7.0 + resolution: "pretty-format@npm:29.7.0" dependencies: - "@jest/schemas": ^28.1.3 - ansi-regex: ^5.0.1 + "@jest/schemas": ^29.6.3 ansi-styles: ^5.0.0 react-is: ^18.0.0 - checksum: e69f857358a3e03d271252d7524bec758c35e44680287f36c1cb905187fbc82da9981a6eb07edfd8a03bc3cbeebfa6f5234c13a3d5b59f2bbdf9b4c4053e0a7f + checksum: 032c1602383e71e9c0c02a01bbd25d6759d60e9c7cf21937dde8357aa753da348fcec5def5d1002c9678a8524d5fe099ad98861286550ef44de8808cc61e43b6 languageName: node linkType: hard @@ -10706,16 +10087,6 @@ __metadata: languageName: node linkType: hard -"prompts@npm:^2.0.1": - version: 2.4.2 - resolution: "prompts@npm:2.4.2" - dependencies: - kleur: ^3.0.3 - sisteransi: ^1.0.5 - checksum: d8fd1fe63820be2412c13bfc5d0a01909acc1f0367e32396962e737cb2fc52d004f3302475d5ce7d18a1e8a79985f93ff04ee03007d091029c3f9104bffc007d - languageName: node - linkType: hard - "proto-props@npm:^2.0.0": version: 2.0.0 resolution: "proto-props@npm:2.0.0" @@ -11052,13 +10423,6 @@ __metadata: languageName: node linkType: hard -"require-directory@npm:^2.1.1": - version: 2.1.1 - resolution: "require-directory@npm:2.1.1" - checksum: fb47e70bf0001fdeabdc0429d431863e9475e7e43ea5f94ad86503d918423c1543361cc5166d713eaa7029dd7a3d34775af04764bebff99ef413111a5af18c80 - languageName: node - linkType: hard - "resolve-alpn@npm:^1.0.0": version: 1.2.1 resolution: "resolve-alpn@npm:1.2.1" @@ -11066,15 +10430,6 @@ __metadata: languageName: node linkType: hard -"resolve-cwd@npm:^3.0.0": - version: 3.0.0 - resolution: "resolve-cwd@npm:3.0.0" - dependencies: - resolve-from: ^5.0.0 - checksum: 546e0816012d65778e580ad62b29e975a642989108d9a3c5beabfb2304192fa3c9f9146fbdfe213563c6ff51975ae41bac1d3c6e047dd9572c94863a057b4d81 - languageName: node - linkType: hard - "resolve-from@npm:^4.0.0": version: 4.0.0 resolution: "resolve-from@npm:4.0.0" @@ -11089,13 +10444,6 @@ __metadata: languageName: node linkType: hard -"resolve.exports@npm:^1.1.0": - version: 1.1.1 - resolution: "resolve.exports@npm:1.1.1" - checksum: 485aa10082eb388a569d696e17ad7b16f4186efc97dd34eadd029d95b811f21ffee13b1b733198bb4584dbb3cb296aa6f141835221fb7613b9606b84f1386655 - languageName: node - linkType: hard - "resolve@npm:^1.0.0, resolve@npm:^1.1.6, resolve@npm:^1.10.0, resolve@npm:^1.10.1, resolve@npm:^1.20.0, resolve@npm:^1.22.1": version: 1.22.2 resolution: "resolve@npm:1.22.2" @@ -11198,6 +10546,60 @@ __metadata: languageName: node linkType: hard +"rollup@npm:^4.2.0": + version: 4.13.0 + resolution: "rollup@npm:4.13.0" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.13.0 + "@rollup/rollup-android-arm64": 4.13.0 + "@rollup/rollup-darwin-arm64": 4.13.0 + "@rollup/rollup-darwin-x64": 4.13.0 + "@rollup/rollup-linux-arm-gnueabihf": 4.13.0 + "@rollup/rollup-linux-arm64-gnu": 4.13.0 + "@rollup/rollup-linux-arm64-musl": 4.13.0 + "@rollup/rollup-linux-riscv64-gnu": 4.13.0 + "@rollup/rollup-linux-x64-gnu": 4.13.0 + "@rollup/rollup-linux-x64-musl": 4.13.0 + "@rollup/rollup-win32-arm64-msvc": 4.13.0 + "@rollup/rollup-win32-ia32-msvc": 4.13.0 + "@rollup/rollup-win32-x64-msvc": 4.13.0 + "@types/estree": 1.0.5 + fsevents: ~2.3.2 + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: c2c35bee0a71ceb0df37c170c2b73a500bf9ebdffb747487d77831348603d50dcfcdd9d0a937362d3a87edda559c9d1e017fba2d75f05f0c594634d9b8dde9a4 + languageName: node + linkType: hard + "run-async@npm:^2.0.0, run-async@npm:^2.4.0": version: 2.4.1 resolution: "run-async@npm:2.4.1" @@ -11301,23 +10703,23 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.x, semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.1.3, semver@npm:^7.2.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.0, semver@npm:^7.6.0": - version: 7.6.0 - resolution: "semver@npm:7.6.0" - dependencies: - lru-cache: ^6.0.0 +"semver@npm:^6.0.0, semver@npm:^6.1.0, semver@npm:^6.3.0": + version: 6.3.1 + resolution: "semver@npm:6.3.1" bin: semver: bin/semver.js - checksum: 7427f05b70786c696640edc29fdd4bc33b2acf3bbe1740b955029044f80575fc664e1a512e4113c3af21e767154a94b4aa214bf6cd6e42a1f6dba5914e0b208c + checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2 languageName: node linkType: hard -"semver@npm:^6.0.0, semver@npm:^6.1.0, semver@npm:^6.3.0": - version: 6.3.1 - resolution: "semver@npm:6.3.1" +"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.1.3, semver@npm:^7.2.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.0, semver@npm:^7.6.0": + version: 7.6.0 + resolution: "semver@npm:7.6.0" + dependencies: + lru-cache: ^6.0.0 bin: semver: bin/semver.js - checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2 + checksum: 7427f05b70786c696640edc29fdd4bc33b2acf3bbe1740b955029044f80575fc664e1a512e4113c3af21e767154a94b4aa214bf6cd6e42a1f6dba5914e0b208c languageName: node linkType: hard @@ -11379,6 +10781,13 @@ __metadata: languageName: node linkType: hard +"siginfo@npm:^2.0.0": + version: 2.0.0 + resolution: "siginfo@npm:2.0.0" + checksum: 8aa5a98640ca09fe00d74416eca97551b3e42991614a3d1b824b115fc1401543650914f651ab1311518177e4d297e80b953f4cd4cd7ea1eabe824e8f2091de01 + languageName: node + linkType: hard + "signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" @@ -11393,6 +10802,13 @@ __metadata: languageName: node linkType: hard +"signal-exit@npm:^4.1.0": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 + languageName: node + linkType: hard + "sigstore@npm:^1.3.0": version: 1.7.0 resolution: "sigstore@npm:1.7.0" @@ -11415,13 +10831,6 @@ __metadata: languageName: node linkType: hard -"sisteransi@npm:^1.0.5": - version: 1.0.5 - resolution: "sisteransi@npm:1.0.5" - checksum: aba6438f46d2bfcef94cf112c835ab395172c75f67453fe05c340c770d3c402363018ae1ab4172a1026a90c47eaccf3af7b6ff6fa749a680c2929bd7fa2b37a4 - languageName: node - linkType: hard - "slash@npm:^3.0.0": version: 3.0.0 resolution: "slash@npm:3.0.0" @@ -11540,13 +10949,10 @@ __metadata: languageName: node linkType: hard -"source-map-support@npm:0.5.13": - version: 0.5.13 - resolution: "source-map-support@npm:0.5.13" - dependencies: - buffer-from: ^1.0.0 - source-map: ^0.6.0 - checksum: 933550047b6c1a2328599a21d8b7666507427c0f5ef5eaadd56b5da0fd9505e239053c66fe181bf1df469a3b7af9d775778eee283cbb7ae16b902ddc09e93a97 +"source-map-js@npm:^1.0.2": + version: 1.0.2 + resolution: "source-map-js@npm:1.0.2" + checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c languageName: node linkType: hard @@ -11560,7 +10966,7 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.6.0, source-map@npm:^0.6.1": +"source-map@npm:^0.6.0": version: 0.6.1 resolution: "source-map@npm:0.6.1" checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 @@ -11670,12 +11076,17 @@ __metadata: languageName: node linkType: hard -"stack-utils@npm:^2.0.3": - version: 2.0.6 - resolution: "stack-utils@npm:2.0.6" - dependencies: - escape-string-regexp: ^2.0.0 - checksum: 052bf4d25bbf5f78e06c1d5e67de2e088b06871fa04107ca8d3f0e9d9263326e2942c8bedee3545795fc77d787d443a538345eef74db2f8e35db3558c6f91ff7 +"stackback@npm:0.0.2": + version: 0.0.2 + resolution: "stackback@npm:0.0.2" + checksum: 2d4dc4e64e2db796de4a3c856d5943daccdfa3dd092e452a1ce059c81e9a9c29e0b9badba91b43ef0d5ff5c04ee62feb3bcc559a804e16faf447bac2d883aa99 + languageName: node + linkType: hard + +"std-env@npm:^3.5.0": + version: 3.7.0 + resolution: "std-env@npm:3.7.0" + checksum: 4f489d13ff2ab838c9acd4ed6b786b51aa52ecacdfeaefe9275fcb220ff2ac80c6e95674723508fd29850a694569563a8caaaea738eb82ca16429b3a0b50e510 languageName: node linkType: hard @@ -11686,16 +11097,6 @@ __metadata: languageName: node linkType: hard -"string-length@npm:^4.0.1": - version: 4.0.2 - resolution: "string-length@npm:4.0.2" - dependencies: - char-regex: ^1.0.2 - strip-ansi: ^6.0.0 - checksum: ce85533ef5113fcb7e522bcf9e62cb33871aa99b3729cec5595f4447f660b0cefd542ca6df4150c97a677d58b0cb727a3fe09ac1de94071d05526c73579bf505 - languageName: node - linkType: hard - "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.0.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" @@ -11822,13 +11223,6 @@ __metadata: languageName: node linkType: hard -"strip-bom@npm:^4.0.0": - version: 4.0.0 - resolution: "strip-bom@npm:4.0.0" - checksum: 9dbcfbaf503c57c06af15fe2c8176fb1bf3af5ff65003851a102749f875a6dbe0ab3b30115eccf6e805e9d756830d3e40ec508b62b3f1ddf3761a20ebe29d3f3 - languageName: node - linkType: hard - "strip-final-newline@npm:^2.0.0": version: 2.0.0 resolution: "strip-final-newline@npm:2.0.0" @@ -11836,6 +11230,13 @@ __metadata: languageName: node linkType: hard +"strip-final-newline@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-final-newline@npm:3.0.0" + checksum: 23ee263adfa2070cd0f23d1ac14e2ed2f000c9b44229aec9c799f1367ec001478469560abefd00c5c99ee6f0b31c137d53ec6029c53e9f32a93804e18c201050 + languageName: node + linkType: hard + "strip-indent@npm:^3.0.0": version: 3.0.0 resolution: "strip-indent@npm:3.0.0" @@ -11868,6 +11269,15 @@ __metadata: languageName: node linkType: hard +"strip-literal@npm:^2.0.0": + version: 2.0.0 + resolution: "strip-literal@npm:2.0.0" + dependencies: + js-tokens: ^8.0.2 + checksum: 1d0784408890cb8f7dca2b7658f7b8d6ea8e1e956475bffcb5b4ea0daa6ffb09335f4ff321562282eac4420feb791277bf2163a30ec81641845faee861d49625 + languageName: node + linkType: hard + "strnum@npm:^1.0.5": version: 1.0.5 resolution: "strnum@npm:1.0.5" @@ -11893,7 +11303,7 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^8.0.0, supports-color@npm:^8.1.1": +"supports-color@npm:^8.1.1": version: 8.1.1 resolution: "supports-color@npm:8.1.1" dependencies: @@ -11940,27 +11350,6 @@ __metadata: languageName: node linkType: hard -"terminal-link@npm:^2.0.0": - version: 2.1.1 - resolution: "terminal-link@npm:2.1.1" - dependencies: - ansi-escapes: ^4.2.1 - supports-hyperlinks: ^2.0.0 - checksum: ce3d2cd3a438c4a9453947aa664581519173ea40e77e2534d08c088ee6dda449eabdbe0a76d2a516b8b73c33262fedd10d5270ccf7576ae316e3db170ce6562f - languageName: node - linkType: hard - -"test-exclude@npm:^6.0.0": - version: 6.0.0 - resolution: "test-exclude@npm:6.0.0" - dependencies: - "@istanbuljs/schema": ^0.1.2 - glob: ^7.1.4 - minimatch: ^3.0.4 - checksum: 3b34a3d77165a2cb82b34014b3aba93b1c4637a5011807557dc2f3da826c59975a5ccad765721c4648b39817e3472789f9b0fa98fc854c5c1c7a1e632aacdc28 - languageName: node - linkType: hard - "text-table@npm:^0.2.0": version: 0.2.0 resolution: "text-table@npm:0.2.0" @@ -11989,6 +11378,27 @@ __metadata: languageName: node linkType: hard +"tinybench@npm:^2.5.1": + version: 2.6.0 + resolution: "tinybench@npm:2.6.0" + checksum: a621ac66ac17ec5da7e9ac10b3c27040e58c3cd843ccedd8e1e3fab5702d6337b80d02b7bfbf420ab5f029dcb7895657fb80ce21181896e170fa4e6d2c2eebc4 + languageName: node + linkType: hard + +"tinypool@npm:^0.8.2": + version: 0.8.2 + resolution: "tinypool@npm:0.8.2" + checksum: b0993207b89ab8ab565e1eb03287aa3f15bc648c2e1da889bcfad003244271a5efe5c215d8074c3b8798ae7ea9c54678b6c9b09e7e5c8e82285177792e7ac30a + languageName: node + linkType: hard + +"tinyspy@npm:^2.2.0": + version: 2.2.1 + resolution: "tinyspy@npm:2.2.1" + checksum: 170d6232e87f9044f537b50b406a38fbfd6f79a261cd12b92879947bd340939a833a678632ce4f5c4a6feab4477e9c21cd43faac3b90b68b77dd0536c4149736 + languageName: node + linkType: hard + "tldts-core@npm:^6.0.11": version: 6.0.11 resolution: "tldts-core@npm:6.0.11" @@ -12032,13 +11442,6 @@ __metadata: languageName: node linkType: hard -"tmpl@npm:1.0.5": - version: 1.0.5 - resolution: "tmpl@npm:1.0.5" - checksum: cd922d9b853c00fe414c5a774817be65b058d54a2d01ebb415840960406c669a0fc632f66df885e24cb022ec812739199ccbdb8d1164c3e513f85bfca5ab2873 - languageName: node - linkType: hard - "to-absolute-glob@npm:^2.0.2": version: 2.0.2 resolution: "to-absolute-glob@npm:2.0.2" @@ -12125,39 +11528,6 @@ __metadata: languageName: node linkType: hard -"ts-jest@npm:^28.0.7": - version: 28.0.8 - resolution: "ts-jest@npm:28.0.8" - dependencies: - bs-logger: 0.x - fast-json-stable-stringify: 2.x - jest-util: ^28.0.0 - json5: ^2.2.1 - lodash.memoize: 4.x - make-error: 1.x - semver: 7.x - yargs-parser: ^21.0.1 - peerDependencies: - "@babel/core": ">=7.0.0-beta.0 <8" - "@jest/types": ^28.0.0 - babel-jest: ^28.0.0 - jest: ^28.0.0 - typescript: ">=4.3" - peerDependenciesMeta: - "@babel/core": - optional: true - "@jest/types": - optional: true - babel-jest: - optional: true - esbuild: - optional: true - bin: - ts-jest: cli.js - checksum: c72e9292709e77ce47ac7813cb24feaa9d01dc983598d29a821f224b5cc190dc7d67e17379cef089095404c00b9d582ee91c727916f9ec289cb1b723df408ae3 - languageName: node - linkType: hard - "ts-node-dev@npm:^2.0.0": version: 2.0.0 resolution: "ts-node-dev@npm:2.0.0" @@ -12346,7 +11716,7 @@ __metadata: languageName: node linkType: hard -"type-detect@npm:4.0.8": +"type-detect@npm:^4.0.0, type-detect@npm:^4.0.8": version: 4.0.8 resolution: "type-detect@npm:4.0.8" checksum: 62b5628bff67c0eb0b66afa371bd73e230399a8d2ad30d852716efcc4656a7516904570cd8631a49a3ce57c10225adf5d0cbdcb47f6b0255fe6557c453925a15 @@ -12453,6 +11823,13 @@ __metadata: languageName: node linkType: hard +"ufo@npm:^1.3.2": + version: 1.4.0 + resolution: "ufo@npm:1.4.0" + checksum: 7c7ca3d823ae56a0439bc7038116a26a8c4e95aa9252aef43091f08f104af5557c2d220d990d07891c2771ca7c0589c479e330737ce6d7bbee485bb031046f19 + languageName: node + linkType: hard + "unbox-primitive@npm:^1.0.2": version: 1.0.2 resolution: "unbox-primitive@npm:1.0.2" @@ -12666,17 +12043,6 @@ __metadata: languageName: node linkType: hard -"v8-to-istanbul@npm:^9.0.1": - version: 9.1.0 - resolution: "v8-to-istanbul@npm:9.1.0" - dependencies: - "@jridgewell/trace-mapping": ^0.3.12 - "@types/istanbul-lib-coverage": ^2.0.1 - convert-source-map: ^1.6.0 - checksum: 2069d59ee46cf8d83b4adfd8a5c1a90834caffa9f675e4360f1157ffc8578ef0f763c8f32d128334424159bb6b01f3876acd39cd13297b2769405a9da241f8d1 - languageName: node - linkType: hard - "validate-npm-package-license@npm:^3.0.1, validate-npm-package-license@npm:^3.0.4": version: 3.0.4 resolution: "validate-npm-package-license@npm:3.0.4" @@ -12743,6 +12109,111 @@ __metadata: languageName: node linkType: hard +"vite-node@npm:1.3.1": + version: 1.3.1 + resolution: "vite-node@npm:1.3.1" + dependencies: + cac: ^6.7.14 + debug: ^4.3.4 + pathe: ^1.1.1 + picocolors: ^1.0.0 + vite: ^5.0.0 + bin: + vite-node: vite-node.mjs + checksum: 62a0bd2cdb70160b5107011d10f60d76e8ede6dbad1dcac99d57e4b4c0b21683e40a7e6088b7e221a4db0b70fb83ace8e13a0f1c5bf1c0d38e2bf9c0bab17b17 + languageName: node + linkType: hard + +"vite@npm:^5.0.0": + version: 5.1.6 + resolution: "vite@npm:5.1.6" + dependencies: + esbuild: ^0.19.3 + fsevents: ~2.3.3 + postcss: ^8.4.35 + rollup: ^4.2.0 + peerDependencies: + "@types/node": ^18.0.0 || >=20.0.0 + less: "*" + lightningcss: ^1.21.0 + sass: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + bin: + vite: bin/vite.js + checksum: 21863ca12303ea6305fe9230a55e7cb30b4cac05dd2a2596889e079163ccc81bcb465ff6dd165001042f47e999192b9c579329484211e000afe9b47068c7fab0 + languageName: node + linkType: hard + +"vitest@npm:^1.3.1": + version: 1.3.1 + resolution: "vitest@npm:1.3.1" + dependencies: + "@vitest/expect": 1.3.1 + "@vitest/runner": 1.3.1 + "@vitest/snapshot": 1.3.1 + "@vitest/spy": 1.3.1 + "@vitest/utils": 1.3.1 + acorn-walk: ^8.3.2 + chai: ^4.3.10 + debug: ^4.3.4 + execa: ^8.0.1 + local-pkg: ^0.5.0 + magic-string: ^0.30.5 + pathe: ^1.1.1 + picocolors: ^1.0.0 + std-env: ^3.5.0 + strip-literal: ^2.0.0 + tinybench: ^2.5.1 + tinypool: ^0.8.2 + vite: ^5.0.0 + vite-node: 1.3.1 + why-is-node-running: ^2.2.2 + peerDependencies: + "@edge-runtime/vm": "*" + "@types/node": ^18.0.0 || >=20.0.0 + "@vitest/browser": 1.3.1 + "@vitest/ui": 1.3.1 + happy-dom: "*" + jsdom: "*" + peerDependenciesMeta: + "@edge-runtime/vm": + optional: true + "@types/node": + optional: true + "@vitest/browser": + optional: true + "@vitest/ui": + optional: true + happy-dom: + optional: true + jsdom: + optional: true + bin: + vitest: vitest.mjs + checksum: 6f760296d825537ca69b7ff321ab839385d26336aefd7b52aac6e16cfcb3e5b3dfda31e51315f2be9f7aebdc87db5ce6739294ebc3f9c4ca256dff96ee0c06ed + languageName: node + linkType: hard + "wait-on@npm:^6.0.0": version: 6.0.1 resolution: "wait-on@npm:6.0.1" @@ -12765,15 +12236,6 @@ __metadata: languageName: node linkType: hard -"walker@npm:^1.0.8": - version: 1.0.8 - resolution: "walker@npm:1.0.8" - dependencies: - makeerror: 1.0.12 - checksum: ad7a257ea1e662e57ef2e018f97b3c02a7240ad5093c392186ce0bcf1f1a60bbadd520d073b9beb921ed99f64f065efb63dfc8eec689a80e569f93c1c5d5e16c - languageName: node - linkType: hard - "wcwidth@npm:^1.0.1": version: 1.0.1 resolution: "wcwidth@npm:1.0.1" @@ -12859,6 +12321,18 @@ __metadata: languageName: node linkType: hard +"why-is-node-running@npm:^2.2.2": + version: 2.2.2 + resolution: "why-is-node-running@npm:2.2.2" + dependencies: + siginfo: ^2.0.0 + stackback: 0.0.2 + bin: + why-is-node-running: cli.js + checksum: 50820428f6a82dfc3cbce661570bcae9b658723217359b6037b67e495255409b4c8bc7931745f5c175df71210450464517cab32b2f7458ac9c40b4925065200a + languageName: node + linkType: hard + "wide-align@npm:^1.1.2, wide-align@npm:^1.1.5": version: 1.1.5 resolution: "wide-align@npm:1.1.5" @@ -12924,7 +12398,7 @@ __metadata: languageName: node linkType: hard -"write-file-atomic@npm:^4.0.0, write-file-atomic@npm:^4.0.1": +"write-file-atomic@npm:^4.0.0": version: 4.0.2 resolution: "write-file-atomic@npm:4.0.2" dependencies: @@ -13019,13 +12493,6 @@ __metadata: languageName: node linkType: hard -"y18n@npm:^5.0.5": - version: 5.0.8 - resolution: "y18n@npm:5.0.8" - checksum: 54f0fb95621ee60898a38c572c515659e51cc9d9f787fb109cef6fde4befbe1c4602dc999d30110feee37456ad0f1660fa2edcfde6a9a740f86a290999550d30 - languageName: node - linkType: hard - "yallist@npm:^3.0.2": version: 3.1.1 resolution: "yallist@npm:3.1.1" @@ -13054,28 +12521,6 @@ __metadata: languageName: node linkType: hard -"yargs-parser@npm:^21.0.1, yargs-parser@npm:^21.1.1": - version: 21.1.1 - resolution: "yargs-parser@npm:21.1.1" - checksum: ed2d96a616a9e3e1cc7d204c62ecc61f7aaab633dcbfab2c6df50f7f87b393993fe6640d017759fe112d0cb1e0119f2b4150a87305cc873fd90831c6a58ccf1c - languageName: node - linkType: hard - -"yargs@npm:^17.3.1": - version: 17.7.2 - resolution: "yargs@npm:17.7.2" - dependencies: - cliui: ^8.0.1 - escalade: ^3.1.1 - get-caller-file: ^2.0.5 - require-directory: ^2.1.1 - string-width: ^4.2.3 - y18n: ^5.0.5 - yargs-parser: ^21.1.1 - checksum: 73b572e863aa4a8cbef323dd911d79d193b772defd5a51aab0aca2d446655216f5002c42c5306033968193bdbf892a7a4c110b0d77954a7fdf563e653967b56a - languageName: node - linkType: hard - "yeoman-environment@npm:^3.15.1": version: 3.19.3 resolution: "yeoman-environment@npm:3.19.3" From 3716bc46a12c648c68513aba14c9143fbd719ad2 Mon Sep 17 00:00:00 2001 From: Guillaume Pierson Date: Thu, 14 Mar 2024 17:27:57 +0100 Subject: [PATCH 5/7] Fix tests --- e2e/.greenframe.single.en.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e/.greenframe.single.en.yml b/e2e/.greenframe.single.en.yml index 2917954..8a349dc 100644 --- a/e2e/.greenframe.single.en.yml +++ b/e2e/.greenframe.single.en.yml @@ -1,4 +1,4 @@ -scenario: '../../src/examples/marmelab.en.js' +scenario: '../../src/examples/marmelab.en.cjs' baseURL: 'https://marmelab.com' samples: 2 projectName: 'Marmelab' From ac7340267a06b0e7efb04f684fe2aed346912f93 Mon Sep 17 00:00:00 2001 From: Guillaume Pierson Date: Thu, 14 Mar 2024 17:32:35 +0100 Subject: [PATCH 6/7] Fix tests --- e2e/.greenframe.single.fr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e/.greenframe.single.fr.yml b/e2e/.greenframe.single.fr.yml index 2d51805..914b8a6 100644 --- a/e2e/.greenframe.single.fr.yml +++ b/e2e/.greenframe.single.fr.yml @@ -1,4 +1,4 @@ -scenario: '../../src/examples/marmelab.fr.js' +scenario: '../../src/examples/marmelab.fr.cjs' baseURL: 'https://marmelab.com' samples: 2 projectName: 'Marmelab' From da304ac25fb3be12049c23517a57110652d1c60a Mon Sep 17 00:00:00 2001 From: Guillaume Pierson Date: Thu, 14 Mar 2024 18:47:54 +0100 Subject: [PATCH 7/7] Rename alias to be less confusing --- e2e/greenframe.io/analyze.spec.mjs | 4 ++-- e2e/greenframe.io/open.spec.mjs | 4 ++-- e2e/local/analyze.spec.mjs | 4 ++-- e2e/local/open.spec.mjs | 4 ++-- src/commands/update.ts | 4 ++-- src/services/container/execScenarioContainer.ts | 4 ++-- src/services/docker/index.ts | 4 ++-- src/services/git/utils.ts | 4 ++-- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/e2e/greenframe.io/analyze.spec.mjs b/e2e/greenframe.io/analyze.spec.mjs index 19449c9..32f124a 100644 --- a/e2e/greenframe.io/analyze.spec.mjs +++ b/e2e/greenframe.io/analyze.spec.mjs @@ -1,7 +1,7 @@ -import { exec as execSync } from 'node:child_process'; +import { exec as execThen } from 'node:child_process'; import { promisify } from 'node:util'; import { describe, expect, it } from 'vitest'; -const exec = promisify(execSync); +const exec = promisify(execThen); const BASE_COMMAND = `GREENFRAME_SECRET_TOKEN=API_TOKEN API_URL=http://localhost:3006 ./bin/run analyze`; diff --git a/e2e/greenframe.io/open.spec.mjs b/e2e/greenframe.io/open.spec.mjs index 356cb82..8fa1068 100644 --- a/e2e/greenframe.io/open.spec.mjs +++ b/e2e/greenframe.io/open.spec.mjs @@ -1,7 +1,7 @@ -import { exec as execSync } from 'node:child_process'; +import { exec as execThen } from 'node:child_process'; import { promisify } from 'node:util'; import { describe, expect, it } from 'vitest'; -const exec = promisify(execSync); +const exec = promisify(execThen); const BASE_COMMAND = `GREENFRAME_SECRET_TOKEN=API_TOKEN API_URL=http://localhost:3006 ./bin/run open`; diff --git a/e2e/local/analyze.spec.mjs b/e2e/local/analyze.spec.mjs index 2cca7c6..98931e5 100644 --- a/e2e/local/analyze.spec.mjs +++ b/e2e/local/analyze.spec.mjs @@ -1,8 +1,8 @@ -import { exec as execSync } from 'node:child_process'; +import { exec as execThen } from 'node:child_process'; import { promisify } from 'node:util'; import { describe, expect, it } from 'vitest'; -const exec = promisify(execSync); +const exec = promisify(execThen); const BASE_COMMAND = `./bin/run.js analyze`; diff --git a/e2e/local/open.spec.mjs b/e2e/local/open.spec.mjs index 88f846d..fc56496 100644 --- a/e2e/local/open.spec.mjs +++ b/e2e/local/open.spec.mjs @@ -1,7 +1,7 @@ import { promisify } from 'node:util'; import { describe, expect, it } from 'vitest'; -import { exec as execSync } from 'node:child_process'; -const exec = promisify(execSync); +import { exec as execThen } from 'node:child_process'; +const exec = promisify(execThen); const BASE_COMMAND = `./bin/run open`; diff --git a/src/commands/update.ts b/src/commands/update.ts index 3325ee4..e534edf 100644 --- a/src/commands/update.ts +++ b/src/commands/update.ts @@ -1,8 +1,8 @@ import { Args, Command } from '@oclif/core'; import axios from 'axios'; -import { exec as execSync } from 'node:child_process'; +import { exec as execThen } from 'node:child_process'; import { promisify } from 'node:util'; -const exec = promisify(execSync); +const exec = promisify(execThen); class UpdateCommand extends Command { static args = { diff --git a/src/services/container/execScenarioContainer.ts b/src/services/container/execScenarioContainer.ts index fa82e6f..f71e846 100644 --- a/src/services/container/execScenarioContainer.ts +++ b/src/services/container/execScenarioContainer.ts @@ -1,10 +1,10 @@ import initDebug from 'debug'; -import { exec as execSync } from 'node:child_process'; +import { exec as execThen } from 'node:child_process'; import path from 'node:path'; import { promisify } from 'node:util'; import { CONTAINER_DEVICE_NAME } from '../../constants.js'; import ScenarioError from '../errors/ScenarioError.js'; -const exec = promisify(execSync); +const exec = promisify(execThen); import { dirname } from 'node:path'; import { fileURLToPath } from 'node:url'; diff --git a/src/services/docker/index.ts b/src/services/docker/index.ts index d04506c..5732c0f 100644 --- a/src/services/docker/index.ts +++ b/src/services/docker/index.ts @@ -1,6 +1,6 @@ import { promisify } from 'node:util'; -import { exec as execSync } from 'node:child_process'; -const exec = promisify(execSync); +import { exec as execThen } from 'node:child_process'; +const exec = promisify(execThen); export async function getDockerVersion() { const { stdout } = await exec('docker -v'); diff --git a/src/services/git/utils.ts b/src/services/git/utils.ts index 8ec7f75..2e0181f 100644 --- a/src/services/git/utils.ts +++ b/src/services/git/utils.ts @@ -1,6 +1,6 @@ import { promisify } from 'node:util'; -import { exec as execSync } from 'node:child_process'; -const exec = promisify(execSync); +import { exec as execThen } from 'node:child_process'; +const exec = promisify(execThen); export const getCommitMessage = async () => { try {