diff --git a/.eslintrc.json b/.eslintrc.json index ace239fd6..d9b4b80a3 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,11 +1,24 @@ { + "root": true, "env": { "es6": true }, - "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"], + "extends": ["airbnb-base", "airbnb-typescript/base", "plugin:jest/recommended", "plugin:jest/style", "prettier"], "parser": "@typescript-eslint/parser", "parserOptions": { - "project": "tsconfig.json" + "ecmaVersion": 6, + "sourceType": "module", + "project": ["./tsconfig.json", "./packages/**/tsconfig.json"] }, - "plugins": ["@typescript-eslint"] + "plugins": ["@typescript-eslint", "jest"], + "rules": { + "no-underscore-dangle": "off", + "import/no-extraneous-dependencies": "off", + "no-bitwise": "off", + "no-await-in-loop": "off", + "no-restricted-syntax": "off", + "no-console": ["warn", { "allow": ["info", "warn", "error"] }], + "@typescript-eslint/lines-between-class-members": "off", + "no-param-reassign": "off" + } } diff --git a/.github/ISSUE_TEMPLATE/---package.md b/.github/ISSUE_TEMPLATE/---package.md new file mode 100644 index 000000000..621f74112 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/---package.md @@ -0,0 +1,14 @@ +--- +name: "\U0001F4E6 Package" +about: Propose a new Semaphore package +title: '' +labels: 'feature :rocket:' +assignees: '' + +--- + +**Describe the package you'd like** +A clear and concise description of the type of package you have in mind. + +**Additional context** +Add any other context about the package here. diff --git a/.github/workflows/coverall.yml b/.github/workflows/coverall.yml deleted file mode 100644 index 849e132d1..000000000 --- a/.github/workflows/coverall.yml +++ /dev/null @@ -1,50 +0,0 @@ -name: coverall - -on: - push: - branches: - - main - -env: - TREE_DEPTH: 20 - -jobs: - coverall: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - - name: Install Node.js - uses: actions/setup-node@v1 - with: - node-version: 16.x - - - name: Get yarn cache directory path - id: yarn-cache-dir-path - run: echo "::set-output name=dir::$(yarn config get cacheFolder)" - - - name: Restore yarn cache - uses: actions/cache@v3 - id: yarn-cache - with: - path: ${{ steps.yarn-cache-dir-path.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - - name: Install dependencies - run: YARN_CHECKSUM_BEHAVIOR=ignore yarn - - - name: Download Snark artifacts - run: yarn download:snark-artifacts - - - name: Compile contracts - run: yarn compile - - - name: Test contracts with coverage - run: yarn test:coverage - - - uses: coverallsapp/github-action@master - with: - github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/style.yml b/.github/workflows/docs.yml similarity index 68% rename from .github/workflows/style.yml rename to .github/workflows/docs.yml index 26875b188..34d3254a3 100644 --- a/.github/workflows/style.yml +++ b/.github/workflows/docs.yml @@ -1,13 +1,12 @@ -name: style +name: docs on: - pull_request: push: branches: - main jobs: - style: + gh-pages: runs-on: ubuntu-latest steps: @@ -32,13 +31,15 @@ jobs: ${{ runner.os }}-yarn- - name: Install dependencies - run: YARN_CHECKSUM_BEHAVIOR=ignore yarn + run: yarn - - name: Run Prettier - run: yarn prettier + - name: Generate doc website + run: yarn docs - - name: Run Eslint - run: yarn lint - - - name: Compile contracts - run: yarn compile + - name: Publish on Github Pages + uses: crazy-max/ghaction-github-pages@v2.5.0 + with: + build_dir: docs + jekyll: false + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d5d87ab09..c2ad999b4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,7 +10,7 @@ env: TREE_DEPTH: 20 jobs: - test: + install: runs-on: ubuntu-latest steps: @@ -35,13 +35,52 @@ jobs: ${{ runner.os }}-yarn- - name: Install dependencies - run: YARN_CHECKSUM_BEHAVIOR=ignore yarn + run: yarn + + style: + needs: install + runs-on: ubuntu-latest + + steps: + - name: Run Prettier + run: yarn prettier - - name: Download Snark artifacts - run: yarn download:snark-artifacts + - name: Run Eslint + run: yarn lint - name: Compile contracts - run: yarn compile + run: yarn compile:contracts + + - name: Build libraries + run: yarn build:libs + + test: + needs: style + runs-on: ubuntu-latest + strategy: + matrix: + type: + - libraries + - contracts + + steps: + - name: Test contracts and libraries + run: yarn test:${{ matrix.type }} + + - name: Coveralls + uses: coverallsapp/github-action@master + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + flag-name: run-${{ matrix.type }} + path-to-lcov: ./coverage/${{ matrix.type }}/lcov.info + parallel: true - - name: Test contracts with coverage - run: yarn test:coverage + finish: + needs: test + runs-on: ubuntu-latest + steps: + - name: Coveralls Finished + uses: coverallsapp/github-action@master + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + parallel-finished: true diff --git a/.gitignore b/.gitignore index 2289280ed..b772e1fb0 100644 --- a/.gitignore +++ b/.gitignore @@ -16,9 +16,14 @@ pids *.seed *.pid.lock +# IDE +.vscode +.idea + # Testing coverage coverage.json +*.lcov # Dependency directories node_modules/ @@ -28,6 +33,10 @@ node_modules/ # Optional npm cache directory .npm +.DS_Store + +# Output of 'npm pack' +*.tgz # Optional eslint cache .eslintcache @@ -56,6 +65,9 @@ build dist deployed-contracts/undefined.json deployed-contracts/localhost.json +docs/* +!docs/CNAME +!docs/index.html # Hardhat artifacts @@ -72,3 +84,6 @@ cache !.yarn/releases !.yarn/sdks !.yarn/versions + +# Other +snark-artifacts diff --git a/.prettierignore b/.prettierignore index b1405a016..1a74e19a7 100644 --- a/.prettierignore +++ b/.prettierignore @@ -18,7 +18,7 @@ types circuits # contracts -contracts/verifiers +Verifier*.sol # production dist @@ -35,3 +35,6 @@ build npm-debug.log* yarn-debug.log* yarn-error.log* + +# other +snark-artifacts diff --git a/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs b/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs new file mode 100644 index 000000000..b9044a014 --- /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: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 437173806..9992860d9 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -1,4 +1,8 @@ nodeLinker: node-modules checksumBehavior: update +plugins: + - path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs + spec: "@yarnpkg/plugin-workspace-tools" + yarnPath: .yarn/releases/yarn-3.2.1.cjs diff --git a/README.md b/README.md index f4e8270a0..0776f7cf2 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,9 @@ Coveralls + + DeepScan grade + Linter eslint @@ -57,12 +60,132 @@ | Semaphore is a protocol, designed to be a simple and generic privacy layer for Ethereum DApps. Using zero knowledge, Ethereum users can prove their membership of a group and send signals such as votes or endorsements without revealing their original identity. | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -The core of the Semaphore protocol is in the [circuit logic](/circuits/scheme.png). However Semaphore also provides [Solidity contracts](/contracts) (NPM: `@semaphore-protocol/contracts`) and [JavaScript libraries](https://github.com/semaphore-protocol/semaphore.js) to make the steps for offchain proof creation and onchain verification easier. To learn more about Semaphore visit [semaphore.appliedzkp.org](https://semaphore.appliedzkp.org). +The core of the Semaphore protocol is in the [circuit logic](/circuits/scheme.png). However Semaphore also provides [Solidity contracts](/packages/contracts) (NPM: `@semaphore-protocol/contracts`) and JavaScript libraries to make the steps for offchain proof creation and onchain verification easier. To learn more about Semaphore visit [semaphore.appliedzkp.org](https://semaphore.appliedzkp.org). You can find Semaphore V1 on [`version/1.0.0`](https://github.com/semaphore-protocol/semaphore/tree/version/1.0.0). --- +## 📦 Packages + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PackageVersionDownloads
+ + @semaphore-protocol/contracts + + + + + NPM version + + + + + Downloads + +
+ + @semaphore-protocol/identity + + + (docs) + + + + + NPM version + + + + + Downloads + +
+ + @semaphore-protocol/group + + + (docs) + + + + + NPM version + + + + + Downloads + +
+ + @semaphore-protocol/proof + + + (docs) + + + + + NPM version + + + + + Downloads + +
+ + @semaphore-protocol/subgraph + + + (docs) + + + + + NPM version + + + + + Downloads + +
+ + + ## 🛠 Install Clone this repository: @@ -71,7 +194,7 @@ Clone this repository: git clone https://github.com/semaphore-protocol/semaphore.git ``` -and install the dependencies: +And install the dependencies: ```bash cd semaphore && yarn @@ -79,14 +202,6 @@ cd semaphore && yarn ## 📜 Usage -Copy the `.env.example` file as `.env`: - -```bash -cp .env.example .env -``` - -and add your environment variables. - ### Code quality and formatting Run [ESLint](https://eslint.org/) to analyze the code and catch bugs: @@ -101,7 +216,7 @@ Run [Prettier](https://prettier.io/) to check formatting rules: yarn prettier ``` -or to automatically format the code: +Or to automatically format the code: ```bash yarn prettier:write @@ -117,67 +232,46 @@ yarn commit It will also automatically check that the modified files comply with ESLint and Prettier rules. -### Snark artifacts - -Download the Semaphore snark artifacts needed to generate and verify proofs: - -```bash -yarn download:snark-artifacts -``` - -### Compile contracts - -Compile the smart contracts with [Hardhat](https://hardhat.org/): - -```bash -yarn compile -``` - ### Testing -Run [Mocha](https://mochajs.org/) to test the contracts: +Run [Jest](https://jestjs.io/) to test the JS libraries: ```bash -yarn test +yarn test:libraries ``` -You can also generate a test coverage report: +Run [Mocha](https://mochajs.org/) to test the contracts: ```bash -yarn test:coverage +yarn test:contracts ``` -or a test gas report: +Or test everything with: ```bash -yarn test:report-gas +yarn test ``` -### Deploy contracts +### Build packages & compile contracts -Deploy a verifier contract with depth = 20: +Run [Rollup](https://www.rollupjs.org) to build all the packages: ```bash -yarn deploy:verifier --depth 20 +yarn build:libraries ``` -Deploy the `Semaphore.sol` contract with one verifier: +Compile the smart contracts with [Hardhat](https://hardhat.org/): ```bash -yarn deploy:semaphore --verifiers '[{"merkleTreeDepth": 20, "contractAddress": "0x06bcD633988c1CE7Bd134DbE2C12119b6f3E4bD1"}]' +yarn compile:contracts ``` -Deploy all verifiers and Semaphore contract: - -```bash -yarn deploy:all -``` +### Documentation (JS libraries) -If you want to deploy contracts in a specific network you can set up the `DEFAULT_NETWORK` variable in your `.env` file with the name of one of our supported networks (hardhat, localhost, goerli, arbitrum). Or you can specify it as option: +Run [TypeDoc](https://typedoc.org/) to generate a documentation website for each package: ```bash -yarn deploy:all --network goerli -yarn deploy:all --network localhost +yarn docs ``` -If you want to deploy contracts on Goerli or Arbitrum, remember to provide a valid private key and an Infura API in your `.env` file. +The output will be placed on the `docs` folder. diff --git a/babel.config.json b/babel.config.json new file mode 100644 index 000000000..62475f2ef --- /dev/null +++ b/babel.config.json @@ -0,0 +1,3 @@ +{ + "presets": [["@babel/preset-env", { "targets": { "node": "current" } }], "@babel/preset-typescript"] +} diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 000000000..c2543f7c0 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,123 @@ + + + + + + + Semaphore packages + + + + + +
+
+ + + +

Semaphore packages

+
+

+ A monorepo of Semaphore packages. +

+
    +
    +
    +
    +

    + Copyright © 2022 Ethereum Foundation +

    +
    + + + +
    +
    +
    + + + diff --git a/jest.config.ts b/jest.config.ts new file mode 100644 index 000000000..59e3ea78b --- /dev/null +++ b/jest.config.ts @@ -0,0 +1,28 @@ +import fs from "fs" +import type { Config } from "@jest/types" + +const projects: any = fs + .readdirSync("./packages", { withFileTypes: true }) + .filter((directory) => directory.isDirectory()) + .map(({ name }) => ({ + rootDir: `packages/${name}`, + displayName: name, + moduleNameMapper: { + "@semaphore-protocol/(.*)": "/../$1/src/index.ts" // Interdependency packages. + } + })) + +export default async (): Promise => ({ + projects, + verbose: true, + coverageDirectory: "./coverage/libraries", + collectCoverageFrom: ["/src/**/*.ts", "!/src/**/index.ts", "!/src/**/*.d.ts"], + coverageThreshold: { + global: { + branches: 90, + functions: 95, + lines: 95, + statements: 95 + } + } +}) diff --git a/package.json b/package.json index ed0b909fb..b2ee535e5 100644 --- a/package.json +++ b/package.json @@ -1,104 +1,78 @@ { - "name": "semaphore", + "name": "semaphore-protocol", "description": "A zero-knowledge protocol for anonymous signalling on Ethereum.", "license": "MIT", - "homepage": "https://github.com/semaphore-protocol/semaphore.git#readme", - "repository": { - "type": "git", - "url": "git+https://github.com/semaphore-protocol/semaphore.git.git" - }, - "bugs": { - "url": "https://github.com/semaphore-protocol/semaphore.git/issues" - }, + "repository": "git@github.com:semaphore-protocol/semaphore.git", + "homepage": "https://github.com/semaphore-protocol/semaphore", + "bugs": "https://github.com/semaphore-protocol/semaphore/issues", "private": true, "scripts": { - "start": "hardhat node", - "compile": "hardhat compile", - "download:snark-artifacts": "hardhat run scripts/download-snark-artifacts.ts", - "deploy:all": "hardhat run scripts/deploy-all.ts", - "deploy:verifier": "hardhat deploy:verifier", - "deploy:semaphore": "hardhat deploy:semaphore", - "deploy:semaphore-voting": "hardhat deploy:semaphore-voting", - "deploy:semaphore-whistleblowing": "hardhat deploy:semaphore-whistleblowing", - "test": "hardhat test", - "test:report-gas": "REPORT_GAS=true hardhat test", - "test:coverage": "hardhat coverage", - "typechain": "hardhat typechain", - "lint": "yarn lint:sol && yarn lint:ts", - "lint:ts": "eslint . --ext .js,.ts", - "lint:sol": "solhint 'contracts/**/*.sol'", + "build:libraries": "yarn workspaces foreach run build", + "compile:contracts": "yarn workspace contracts compile", + "test": "yarn test:libraries && yarn test:contracts", + "test:libraries": "jest --coverage", + "test:contracts": "yarn workspace contracts test:coverage", + "lint": "eslint . --ext .js,.ts && yarn workspace contracts lint", "prettier": "prettier -c .", "prettier:write": "prettier -w .", + "docs": "yarn workspaces foreach run docs", "commit": "cz", "precommit": "lint-staged" }, + "keywords": [ + "ethereum", + "semaphore", + "solidity", + "circom", + "javascript", + "typescript", + "zero-knowledge", + "zk-snarks", + "zero-knowledge-proofs", + "proof-of-membership", + "monorepo" + ], + "workspaces": [ + "packages/*" + ], "packageManager": "yarn@3.2.1", "devDependencies": { - "@commitlint/cli": "^16.1.0", + "@babel/core": "^7.16.7", + "@babel/preset-env": "^7.16.8", + "@babel/preset-typescript": "^7.17.12", + "@commitlint/cli": "^16.0.2", "@commitlint/config-conventional": "^16.0.0", - "@nomiclabs/hardhat-ethers": "^2.0.6", - "@nomiclabs/hardhat-etherscan": "^3.1.0", - "@nomiclabs/hardhat-waffle": "^2.0.3", - "@semaphore-protocol/group": "2.2.0", - "@semaphore-protocol/identity": "2.0.0", - "@semaphore-protocol/proof": "2.3.1", - "@typechain/ethers-v5": "^10.0.0", - "@typechain/hardhat": "^6.0.0", - "@types/chai": "^4.3.0", + "@rollup/plugin-typescript": "^8.3.0", "@types/download": "^8.0.1", - "@types/mocha": "^9.1.0", - "@types/node": "^17.0.12", + "@types/glob": "^7.2.0", + "@types/jest": "^27.4.0", + "@types/node": "^17.0.9", "@types/rimraf": "^3.0.2", - "@typescript-eslint/eslint-plugin": "^5.10.1", - "@typescript-eslint/parser": "^5.10.1", - "chai": "^4.3.5", - "circomlib": "^2.0.2", + "@typescript-eslint/eslint-plugin": "^5.9.1", + "@typescript-eslint/parser": "^5.9.1", + "babel-jest": "^27.4.6", "circomlibjs": "^0.0.8", "commitizen": "^4.2.4", "cz-conventional-changelog": "^3.3.0", - "dotenv": "^14.3.2", - "download": "^8.0.0", - "eslint": "^8.7.0", + "eslint": "^8.2.0", + "eslint-config-airbnb-base": "15.0.0", + "eslint-config-airbnb-typescript": "^16.1.0", "eslint-config-prettier": "^8.3.0", - "ethereum-waffle": "^3.4.4", - "ethers": "^5.6.8", - "hardhat": "^2.9.7", - "hardhat-gas-reporter": "^1.0.8", - "js-logger": "^1.6.1", - "lint-staged": "^12.3.2", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-jest": "^25.7.0", + "jest": "^27.4.1", + "jest-config": "^27.4.7", + "lint-staged": "^12.1.7", "prettier": "^2.5.1", - "prettier-plugin-solidity": "^1.0.0-beta.19", "rimraf": "^3.0.2", - "snarkjs": "^0.4.13", - "solhint": "^3.3.6", - "solhint-plugin-prettier": "^0.0.5", - "solidity-coverage": "^0.7.21", + "rollup": "^2.64.0", "ts-node": "^10.4.0", - "typechain": "^8.0.0", - "typescript": "^4.5.5" + "tslib": "^2.3.1", + "typescript": "^4.5.4" }, "config": { - "solidity": { - "version": "0.8.4" - }, - "paths": { - "contracts": "./contracts", - "circuit": "./circuit", - "tests": "./test", - "cache": "./cache", - "snarkjs-templates": "./snarkjs-templates", - "build": { - "snark-artifacts": "./build/snark-artifacts", - "contracts": "./build/contracts", - "typechain": "./build/typechain" - } - }, "commitizen": { "path": "./node_modules/cz-conventional-changelog" } - }, - "dependencies": { - "@openzeppelin/contracts": "4.4.2", - "@zk-kit/incremental-merkle-tree.sol": "1.3.0" } } diff --git a/packages/circuits/package.json b/packages/circuits/package.json new file mode 100644 index 000000000..e015df878 --- /dev/null +++ b/packages/circuits/package.json @@ -0,0 +1,7 @@ +{ + "name": "circuits", + "private": true, + "dependencies": { + "circomlib": "^2.0.2" + } +} diff --git a/circuits/scheme.png b/packages/circuits/scheme.png similarity index 100% rename from circuits/scheme.png rename to packages/circuits/scheme.png diff --git a/circuits/semaphore.circom b/packages/circuits/semaphore.circom similarity index 100% rename from circuits/semaphore.circom rename to packages/circuits/semaphore.circom diff --git a/circuits/tree.circom b/packages/circuits/tree.circom similarity index 100% rename from circuits/tree.circom rename to packages/circuits/tree.circom diff --git a/.env.example b/packages/contracts/.env.example similarity index 100% rename from .env.example rename to packages/contracts/.env.example diff --git a/.solcover.js b/packages/contracts/.solcover.js similarity index 93% rename from .solcover.js rename to packages/contracts/.solcover.js index 8ad15600d..5e46defe2 100644 --- a/.solcover.js +++ b/packages/contracts/.solcover.js @@ -1,4 +1,5 @@ module.exports = { + istanbulFolder: "../../coverage/contracts", skipFiles: [ "verifiers/Verifier16.sol", "verifiers/Verifier17.sol", diff --git a/.solhint.json b/packages/contracts/.solhint.json similarity index 100% rename from .solhint.json rename to packages/contracts/.solhint.json diff --git a/.solhintignore b/packages/contracts/.solhintignore similarity index 100% rename from .solhintignore rename to packages/contracts/.solhintignore diff --git a/packages/contracts/README.md b/packages/contracts/README.md new file mode 100644 index 000000000..1b2b30a9d --- /dev/null +++ b/packages/contracts/README.md @@ -0,0 +1,114 @@ +

    +

    + Semaphore contracts +

    +

    Semaphore contracts to manage groups and broadcast anonymous signals.

    +

    + +

    + + + + + Github license + +

    + + + +To learn more about contracts visit [semaphore.appliedzkp.org](https://semaphore.appliedzkp.org/docs/technical-reference/contracts). + +--- + +## 📜 Usage + +Copy the `.env.example` file as `.env`: + +```bash +cp .env.example .env +``` + +And add your environment variables. + +### Snark artifacts + +Download the Semaphore snark artifacts needed to generate and verify proofs: + +```bash +yarn download:snark-artifacts +``` + +### Compile contracts + +Compile the smart contracts with [Hardhat](https://hardhat.org/): + +```bash +yarn compile +``` + +### Testing + +Run [Mocha](https://mochajs.org/) to test the contracts: + +```bash +yarn test +``` + +You can also generate a test coverage report: + +```bash +yarn test:coverage +``` + +Or a test gas report: + +```bash +yarn test:report-gas +``` + +### Deploy contracts + +Deploy a verifier contract with depth = 20: + +```bash +yarn deploy:verifier --depth 20 +``` + +Deploy the `Semaphore.sol` contract with one verifier: + +```bash +yarn deploy:semaphore --verifiers '[{"merkleTreeDepth": 20, "contractAddress": "0x06bcD633988c1CE7Bd134DbE2C12119b6f3E4bD1"}]' +``` + +Deploy all verifiers and Semaphore contract: + +```bash +yarn deploy:all +``` + +If you want to deploy contracts in a specific network you can set up the `DEFAULT_NETWORK` variable in your `.env` file with the name of one of our supported networks (hardhat, localhost, goerli, arbitrum). Or you can specify it as option: + +```bash +yarn deploy:all --network goerli +yarn deploy:all --network localhost +``` + +If you want to deploy contracts on Goerli or Arbitrum, remember to provide a valid private key and an Infura API in your `.env` file. diff --git a/contracts/README.md b/packages/contracts/contracts/README.md similarity index 96% rename from contracts/README.md rename to packages/contracts/contracts/README.md index 5027ed748..159610d00 100644 --- a/contracts/README.md +++ b/packages/contracts/contracts/README.md @@ -7,7 +7,7 @@

    - + Github license diff --git a/contracts/Semaphore.sol b/packages/contracts/contracts/Semaphore.sol similarity index 100% rename from contracts/Semaphore.sol rename to packages/contracts/contracts/Semaphore.sol diff --git a/contracts/base/SemaphoreConstants.sol b/packages/contracts/contracts/base/SemaphoreConstants.sol similarity index 100% rename from contracts/base/SemaphoreConstants.sol rename to packages/contracts/contracts/base/SemaphoreConstants.sol diff --git a/contracts/base/SemaphoreCore.sol b/packages/contracts/contracts/base/SemaphoreCore.sol similarity index 100% rename from contracts/base/SemaphoreCore.sol rename to packages/contracts/contracts/base/SemaphoreCore.sol diff --git a/contracts/base/SemaphoreGroups.sol b/packages/contracts/contracts/base/SemaphoreGroups.sol similarity index 100% rename from contracts/base/SemaphoreGroups.sol rename to packages/contracts/contracts/base/SemaphoreGroups.sol diff --git a/contracts/extensions/SemaphoreVoting.sol b/packages/contracts/contracts/extensions/SemaphoreVoting.sol similarity index 100% rename from contracts/extensions/SemaphoreVoting.sol rename to packages/contracts/contracts/extensions/SemaphoreVoting.sol diff --git a/contracts/extensions/SemaphoreWhistleblowing.sol b/packages/contracts/contracts/extensions/SemaphoreWhistleblowing.sol similarity index 100% rename from contracts/extensions/SemaphoreWhistleblowing.sol rename to packages/contracts/contracts/extensions/SemaphoreWhistleblowing.sol diff --git a/contracts/interfaces/ISemaphore.sol b/packages/contracts/contracts/interfaces/ISemaphore.sol similarity index 100% rename from contracts/interfaces/ISemaphore.sol rename to packages/contracts/contracts/interfaces/ISemaphore.sol diff --git a/contracts/interfaces/ISemaphoreCore.sol b/packages/contracts/contracts/interfaces/ISemaphoreCore.sol similarity index 100% rename from contracts/interfaces/ISemaphoreCore.sol rename to packages/contracts/contracts/interfaces/ISemaphoreCore.sol diff --git a/contracts/interfaces/ISemaphoreGroups.sol b/packages/contracts/contracts/interfaces/ISemaphoreGroups.sol similarity index 100% rename from contracts/interfaces/ISemaphoreGroups.sol rename to packages/contracts/contracts/interfaces/ISemaphoreGroups.sol diff --git a/contracts/interfaces/ISemaphoreNullifiers.sol b/packages/contracts/contracts/interfaces/ISemaphoreNullifiers.sol similarity index 100% rename from contracts/interfaces/ISemaphoreNullifiers.sol rename to packages/contracts/contracts/interfaces/ISemaphoreNullifiers.sol diff --git a/contracts/interfaces/ISemaphoreVoting.sol b/packages/contracts/contracts/interfaces/ISemaphoreVoting.sol similarity index 100% rename from contracts/interfaces/ISemaphoreVoting.sol rename to packages/contracts/contracts/interfaces/ISemaphoreVoting.sol diff --git a/contracts/interfaces/ISemaphoreWhistleblowing.sol b/packages/contracts/contracts/interfaces/ISemaphoreWhistleblowing.sol similarity index 100% rename from contracts/interfaces/ISemaphoreWhistleblowing.sol rename to packages/contracts/contracts/interfaces/ISemaphoreWhistleblowing.sol diff --git a/contracts/interfaces/IVerifier.sol b/packages/contracts/contracts/interfaces/IVerifier.sol similarity index 100% rename from contracts/interfaces/IVerifier.sol rename to packages/contracts/contracts/interfaces/IVerifier.sol diff --git a/contracts/package.json b/packages/contracts/contracts/package.json similarity index 86% rename from contracts/package.json rename to packages/contracts/contracts/package.json index 44e44b197..f58582195 100644 --- a/contracts/package.json +++ b/packages/contracts/contracts/package.json @@ -20,11 +20,8 @@ "circom", "proof-of-membership" ], - "homepage": "https://github.com/semaphore-protocol/semaphore.git#readme", - "repository": { - "type": "git", - "url": "git+https://github.com/semaphore-protocol/semaphore.git.git" - }, + "repository": "https://github.com/semaphore-protocol/semaphore", + "homepage": "https://github.com/semaphore-protocol/semaphore/tree/main/packages/contracts", "bugs": { "url": "https://github.com/semaphore-protocol/semaphore.git/issues" }, diff --git a/contracts/verifiers/Verifier16.sol b/packages/contracts/contracts/verifiers/Verifier16.sol similarity index 100% rename from contracts/verifiers/Verifier16.sol rename to packages/contracts/contracts/verifiers/Verifier16.sol diff --git a/contracts/verifiers/Verifier17.sol b/packages/contracts/contracts/verifiers/Verifier17.sol similarity index 100% rename from contracts/verifiers/Verifier17.sol rename to packages/contracts/contracts/verifiers/Verifier17.sol diff --git a/contracts/verifiers/Verifier18.sol b/packages/contracts/contracts/verifiers/Verifier18.sol similarity index 100% rename from contracts/verifiers/Verifier18.sol rename to packages/contracts/contracts/verifiers/Verifier18.sol diff --git a/contracts/verifiers/Verifier19.sol b/packages/contracts/contracts/verifiers/Verifier19.sol similarity index 100% rename from contracts/verifiers/Verifier19.sol rename to packages/contracts/contracts/verifiers/Verifier19.sol diff --git a/contracts/verifiers/Verifier20.sol b/packages/contracts/contracts/verifiers/Verifier20.sol similarity index 100% rename from contracts/verifiers/Verifier20.sol rename to packages/contracts/contracts/verifiers/Verifier20.sol diff --git a/contracts/verifiers/Verifier21.sol b/packages/contracts/contracts/verifiers/Verifier21.sol similarity index 100% rename from contracts/verifiers/Verifier21.sol rename to packages/contracts/contracts/verifiers/Verifier21.sol diff --git a/contracts/verifiers/Verifier22.sol b/packages/contracts/contracts/verifiers/Verifier22.sol similarity index 100% rename from contracts/verifiers/Verifier22.sol rename to packages/contracts/contracts/verifiers/Verifier22.sol diff --git a/contracts/verifiers/Verifier23.sol b/packages/contracts/contracts/verifiers/Verifier23.sol similarity index 100% rename from contracts/verifiers/Verifier23.sol rename to packages/contracts/contracts/verifiers/Verifier23.sol diff --git a/contracts/verifiers/Verifier24.sol b/packages/contracts/contracts/verifiers/Verifier24.sol similarity index 100% rename from contracts/verifiers/Verifier24.sol rename to packages/contracts/contracts/verifiers/Verifier24.sol diff --git a/contracts/verifiers/Verifier25.sol b/packages/contracts/contracts/verifiers/Verifier25.sol similarity index 100% rename from contracts/verifiers/Verifier25.sol rename to packages/contracts/contracts/verifiers/Verifier25.sol diff --git a/contracts/verifiers/Verifier26.sol b/packages/contracts/contracts/verifiers/Verifier26.sol similarity index 100% rename from contracts/verifiers/Verifier26.sol rename to packages/contracts/contracts/verifiers/Verifier26.sol diff --git a/contracts/verifiers/Verifier27.sol b/packages/contracts/contracts/verifiers/Verifier27.sol similarity index 100% rename from contracts/verifiers/Verifier27.sol rename to packages/contracts/contracts/verifiers/Verifier27.sol diff --git a/contracts/verifiers/Verifier28.sol b/packages/contracts/contracts/verifiers/Verifier28.sol similarity index 100% rename from contracts/verifiers/Verifier28.sol rename to packages/contracts/contracts/verifiers/Verifier28.sol diff --git a/contracts/verifiers/Verifier29.sol b/packages/contracts/contracts/verifiers/Verifier29.sol similarity index 100% rename from contracts/verifiers/Verifier29.sol rename to packages/contracts/contracts/verifiers/Verifier29.sol diff --git a/contracts/verifiers/Verifier30.sol b/packages/contracts/contracts/verifiers/Verifier30.sol similarity index 100% rename from contracts/verifiers/Verifier30.sol rename to packages/contracts/contracts/verifiers/Verifier30.sol diff --git a/contracts/verifiers/Verifier31.sol b/packages/contracts/contracts/verifiers/Verifier31.sol similarity index 100% rename from contracts/verifiers/Verifier31.sol rename to packages/contracts/contracts/verifiers/Verifier31.sol diff --git a/contracts/verifiers/Verifier32.sol b/packages/contracts/contracts/verifiers/Verifier32.sol similarity index 100% rename from contracts/verifiers/Verifier32.sol rename to packages/contracts/contracts/verifiers/Verifier32.sol diff --git a/deployed-contracts/arbitrum.json b/packages/contracts/deployed-contracts/arbitrum.json similarity index 100% rename from deployed-contracts/arbitrum.json rename to packages/contracts/deployed-contracts/arbitrum.json diff --git a/deployed-contracts/goerli.json b/packages/contracts/deployed-contracts/goerli.json similarity index 100% rename from deployed-contracts/goerli.json rename to packages/contracts/deployed-contracts/goerli.json diff --git a/packages/contracts/deployed-contracts/localhost.json b/packages/contracts/deployed-contracts/localhost.json new file mode 100644 index 000000000..48cb4fdd7 --- /dev/null +++ b/packages/contracts/deployed-contracts/localhost.json @@ -0,0 +1,74 @@ +[ + { + "name": "Verifier16", + "address": "0x5FbDB2315678afecb367f032d93F642f64180aa3" + }, + { + "name": "Verifier17", + "address": "0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512" + }, + { + "name": "Verifier18", + "address": "0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0" + }, + { + "name": "Verifier19", + "address": "0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9" + }, + { + "name": "Verifier20", + "address": "0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9" + }, + { + "name": "Verifier21", + "address": "0x5FC8d32690cc91D4c39d9d3abcBD16989F875707" + }, + { + "name": "Verifier22", + "address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + }, + { + "name": "Verifier23", + "address": "0xa513E6E4b8f2a923D98304ec87F64353C4D5C853" + }, + { + "name": "Verifier24", + "address": "0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6" + }, + { + "name": "Verifier25", + "address": "0x8A791620dd6260079BF849Dc5567aDC3F2FdC318" + }, + { + "name": "Verifier26", + "address": "0x610178dA211FEF7D417bC0e6FeD39F05609AD788" + }, + { + "name": "Verifier27", + "address": "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e" + }, + { + "name": "Verifier28", + "address": "0xA51c1fc2f0D1a1b8494Ed1FE312d7C3a78Ed91C0" + }, + { + "name": "Verifier29", + "address": "0x0DCd1Bf9A1b36cE34237eEaFef220932846BCD82" + }, + { + "name": "Verifier30", + "address": "0x9A676e781A523b5d0C0e43731313A708CB607508" + }, + { + "name": "Verifier31", + "address": "0x0B306BF915C4d645ff596e518fAf3F9669b97016" + }, + { + "name": "Verifier32", + "address": "0x959922bE3CAee4b8Cd9a407cc3ac1C251C2007B1" + }, + { + "name": "Semaphore", + "address": "0x3Aa5ebB10DC797CAC828524e59A333d0A371443c" + } +] diff --git a/packages/contracts/deployed-contracts/undefined.json b/packages/contracts/deployed-contracts/undefined.json new file mode 100644 index 000000000..48cb4fdd7 --- /dev/null +++ b/packages/contracts/deployed-contracts/undefined.json @@ -0,0 +1,74 @@ +[ + { + "name": "Verifier16", + "address": "0x5FbDB2315678afecb367f032d93F642f64180aa3" + }, + { + "name": "Verifier17", + "address": "0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512" + }, + { + "name": "Verifier18", + "address": "0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0" + }, + { + "name": "Verifier19", + "address": "0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9" + }, + { + "name": "Verifier20", + "address": "0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9" + }, + { + "name": "Verifier21", + "address": "0x5FC8d32690cc91D4c39d9d3abcBD16989F875707" + }, + { + "name": "Verifier22", + "address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + }, + { + "name": "Verifier23", + "address": "0xa513E6E4b8f2a923D98304ec87F64353C4D5C853" + }, + { + "name": "Verifier24", + "address": "0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6" + }, + { + "name": "Verifier25", + "address": "0x8A791620dd6260079BF849Dc5567aDC3F2FdC318" + }, + { + "name": "Verifier26", + "address": "0x610178dA211FEF7D417bC0e6FeD39F05609AD788" + }, + { + "name": "Verifier27", + "address": "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e" + }, + { + "name": "Verifier28", + "address": "0xA51c1fc2f0D1a1b8494Ed1FE312d7C3a78Ed91C0" + }, + { + "name": "Verifier29", + "address": "0x0DCd1Bf9A1b36cE34237eEaFef220932846BCD82" + }, + { + "name": "Verifier30", + "address": "0x9A676e781A523b5d0C0e43731313A708CB607508" + }, + { + "name": "Verifier31", + "address": "0x0B306BF915C4d645ff596e518fAf3F9669b97016" + }, + { + "name": "Verifier32", + "address": "0x959922bE3CAee4b8Cd9a407cc3ac1C251C2007B1" + }, + { + "name": "Semaphore", + "address": "0x3Aa5ebB10DC797CAC828524e59A333d0A371443c" + } +] diff --git a/hardhat.config.ts b/packages/contracts/hardhat.config.ts similarity index 71% rename from hardhat.config.ts rename to packages/contracts/hardhat.config.ts index a504dc385..247bcbb2d 100644 --- a/hardhat.config.ts +++ b/packages/contracts/hardhat.config.ts @@ -17,22 +17,24 @@ import "./tasks/deploy-verifier" dotenvConfig({ path: resolve(__dirname, "./.env") }) -function getNetworks(): NetworksUserConfig | undefined { - if (process.env.INFURA_API_KEY && process.env.BACKEND_PRIVATE_KEY) { - const infuraApiKey = process.env.INFURA_API_KEY - const accounts = [`0x${process.env.BACKEND_PRIVATE_KEY}`] +function getNetworks(): NetworksUserConfig { + if (!process.env.INFURA_API_KEY || !process.env.BACKEND_PRIVATE_KEY) { + return {} + } + + const infuraApiKey = process.env.INFURA_API_KEY + const accounts = [`0x${process.env.BACKEND_PRIVATE_KEY}`] - return { - goerli: { - url: `https://goerli.infura.io/v3/${infuraApiKey}`, - chainId: 5, - accounts - }, - arbitrum: { - url: "https://arb1.arbitrum.io/rpc", - chainId: 42161, - accounts - } + return { + goerli: { + url: `https://goerli.infura.io/v3/${infuraApiKey}`, + chainId: 5, + accounts + }, + arbitrum: { + url: "https://arb1.arbitrum.io/rpc", + chainId: 42161, + accounts } } } diff --git a/packages/contracts/package.json b/packages/contracts/package.json new file mode 100644 index 000000000..2a89bc1bc --- /dev/null +++ b/packages/contracts/package.json @@ -0,0 +1,73 @@ +{ + "name": "contracts", + "private": true, + "scripts": { + "start": "hardhat node", + "compile": "hardhat compile", + "download:snark-artifacts": "hardhat run scripts/download-snark-artifacts.ts", + "deploy:all": "hardhat run scripts/deploy-all.ts", + "deploy:verifier": "hardhat deploy:verifier", + "deploy:semaphore": "hardhat deploy:semaphore", + "deploy:semaphore-voting": "hardhat deploy:semaphore-voting", + "deploy:semaphore-whistleblowing": "hardhat deploy:semaphore-whistleblowing", + "test": "yarn download:snark-artifacts && hardhat test", + "test:report-gas": "yarn download:snark-artifacts && REPORT_GAS=true hardhat test", + "test:coverage": "yarn download:snark-artifacts && hardhat coverage", + "typechain": "hardhat typechain", + "lint": "solhint 'contracts/**/*.sol'" + }, + "devDependencies": { + "@nomiclabs/hardhat-ethers": "^2.0.6", + "@nomiclabs/hardhat-etherscan": "^3.1.0", + "@nomiclabs/hardhat-waffle": "^2.0.3", + "@semaphore-protocol/group": "2.2.0", + "@semaphore-protocol/identity": "2.0.0", + "@semaphore-protocol/proof": "2.3.1", + "@typechain/ethers-v5": "^10.0.0", + "@typechain/hardhat": "^6.0.0", + "@types/chai": "^4.3.0", + "@types/download": "^8.0.1", + "@types/mocha": "^9.1.0", + "@types/node": "^17.0.12", + "@types/rimraf": "^3.0.2", + "chai": "^4.3.5", + "circomlib": "^2.0.2", + "circomlibjs": "^0.0.8", + "dotenv": "^14.3.2", + "download": "^8.0.0", + "ethereum-waffle": "^3.4.4", + "ethers": "^5.6.8", + "hardhat": "^2.9.7", + "hardhat-gas-reporter": "^1.0.8", + "js-logger": "^1.6.1", + "prettier-plugin-solidity": "^1.0.0-beta.19", + "rimraf": "^3.0.2", + "snarkjs": "^0.4.13", + "solhint": "^3.3.6", + "solhint-plugin-prettier": "^0.0.5", + "solidity-coverage": "^0.7.21", + "ts-node": "^10.4.0", + "typechain": "^8.0.0" + }, + "config": { + "solidity": { + "version": "0.8.4" + }, + "paths": { + "contracts": "./contracts", + "circuit": "./circuit", + "tests": "./test", + "cache": "./cache", + "snarkjs-templates": "./snarkjs-templates", + "build": { + "snark-artifacts": "./build/snark-artifacts", + "contracts": "./build/contracts", + "typechain": "./build/typechain" + } + } + }, + "dependencies": { + "@openzeppelin/contracts": "4.4.2", + "@zk-kit/incremental-merkle-tree.sol": "1.3.0" + } +} diff --git a/scripts/deploy-all.ts b/packages/contracts/scripts/deploy-all.ts similarity index 96% rename from scripts/deploy-all.ts rename to packages/contracts/scripts/deploy-all.ts index 03f81a67a..6095af052 100644 --- a/scripts/deploy-all.ts +++ b/packages/contracts/scripts/deploy-all.ts @@ -5,7 +5,7 @@ async function main() { const deployedContracts: { name: string; address: string }[] = [] // Deploy verifiers. - for (let treeDepth = 16; treeDepth <= 32; treeDepth++) { + for (let treeDepth = 16; treeDepth <= 32; treeDepth = +1) { const { address } = await run("deploy:verifier", { depth: treeDepth }) deployedContracts.push({ diff --git a/scripts/download-snark-artifacts.ts b/packages/contracts/scripts/download-snark-artifacts.ts similarity index 100% rename from scripts/download-snark-artifacts.ts rename to packages/contracts/scripts/download-snark-artifacts.ts diff --git a/snarkjs-templates/verifier_groth16.sol.ejs b/packages/contracts/snarkjs-templates/verifier_groth16.sol.ejs similarity index 100% rename from snarkjs-templates/verifier_groth16.sol.ejs rename to packages/contracts/snarkjs-templates/verifier_groth16.sol.ejs diff --git a/tasks/accounts.ts b/packages/contracts/tasks/accounts.ts similarity index 88% rename from tasks/accounts.ts rename to packages/contracts/tasks/accounts.ts index 332514b1b..e00de76b0 100644 --- a/tasks/accounts.ts +++ b/packages/contracts/tasks/accounts.ts @@ -8,7 +8,7 @@ task("accounts", "Prints the list of accounts") if (logs) { for (const account of accounts) { - console.log(await account.getAddress()) + console.info(await account.getAddress()) } } diff --git a/tasks/deploy-semaphore-voting.ts b/packages/contracts/tasks/deploy-semaphore-voting.ts similarity index 79% rename from tasks/deploy-semaphore-voting.ts rename to packages/contracts/tasks/deploy-semaphore-voting.ts index f142495ea..3ce4fc377 100644 --- a/tasks/deploy-semaphore-voting.ts +++ b/packages/contracts/tasks/deploy-semaphore-voting.ts @@ -16,7 +16,9 @@ task("deploy:semaphore-voting", "Deploy a SemaphoreVoting contract") await poseidonLib.deployed() - logs && console.log(`Poseidon library has been deployed to: ${poseidonLib.address}`) + if (logs) { + console.info(`Poseidon library has been deployed to: ${poseidonLib.address}`) + } const IncrementalBinaryTreeLibFactory = await ethers.getContractFactory("IncrementalBinaryTree", { libraries: { @@ -27,7 +29,9 @@ task("deploy:semaphore-voting", "Deploy a SemaphoreVoting contract") await incrementalBinaryTreeLib.deployed() - logs && console.log(`IncrementalBinaryTree library has been deployed to: ${incrementalBinaryTreeLib.address}`) + if (logs) { + console.info(`IncrementalBinaryTree library has been deployed to: ${incrementalBinaryTreeLib.address}`) + } const ContractFactory = await ethers.getContractFactory("SemaphoreVoting", { libraries: { @@ -39,7 +43,9 @@ task("deploy:semaphore-voting", "Deploy a SemaphoreVoting contract") await contract.deployed() - logs && console.log(`SemaphoreVoting contract has been deployed to: ${contract.address}`) + if (logs) { + console.info(`SemaphoreVoting contract has been deployed to: ${contract.address}`) + } return contract }) diff --git a/tasks/deploy-semaphore-whistleblowing.ts b/packages/contracts/tasks/deploy-semaphore-whistleblowing.ts similarity index 79% rename from tasks/deploy-semaphore-whistleblowing.ts rename to packages/contracts/tasks/deploy-semaphore-whistleblowing.ts index 1fd8052a2..65e17ee30 100644 --- a/tasks/deploy-semaphore-whistleblowing.ts +++ b/packages/contracts/tasks/deploy-semaphore-whistleblowing.ts @@ -16,7 +16,9 @@ task("deploy:semaphore-whistleblowing", "Deploy a SemaphoreWhistleblowing contra await poseidonLib.deployed() - logs && console.log(`Poseidon library has been deployed to: ${poseidonLib.address}`) + if (logs) { + console.info(`Poseidon library has been deployed to: ${poseidonLib.address}`) + } const IncrementalBinaryTreeLibFactory = await ethers.getContractFactory("IncrementalBinaryTree", { libraries: { @@ -27,7 +29,9 @@ task("deploy:semaphore-whistleblowing", "Deploy a SemaphoreWhistleblowing contra await incrementalBinaryTreeLib.deployed() - logs && console.log(`IncrementalBinaryTree library has been deployed to: ${incrementalBinaryTreeLib.address}`) + if (logs) { + console.info(`IncrementalBinaryTree library has been deployed to: ${incrementalBinaryTreeLib.address}`) + } const ContractFactory = await ethers.getContractFactory("SemaphoreWhistleblowing", { libraries: { @@ -39,7 +43,9 @@ task("deploy:semaphore-whistleblowing", "Deploy a SemaphoreWhistleblowing contra await contract.deployed() - logs && console.log(`SemaphoreWhistleblowing contract has been deployed to: ${contract.address}`) + if (logs) { + console.info(`SemaphoreWhistleblowing contract has been deployed to: ${contract.address}`) + } return contract }) diff --git a/tasks/deploy-semaphore.ts b/packages/contracts/tasks/deploy-semaphore.ts similarity index 79% rename from tasks/deploy-semaphore.ts rename to packages/contracts/tasks/deploy-semaphore.ts index d61b29d8a..ad66eb353 100644 --- a/tasks/deploy-semaphore.ts +++ b/packages/contracts/tasks/deploy-semaphore.ts @@ -16,7 +16,9 @@ task("deploy:semaphore", "Deploy a Semaphore contract") await poseidonLib.deployed() - logs && console.log(`Poseidon library has been deployed to: ${poseidonLib.address}`) + if (logs) { + console.info(`Poseidon library has been deployed to: ${poseidonLib.address}`) + } const IncrementalBinaryTreeLibFactory = await ethers.getContractFactory("IncrementalBinaryTree", { libraries: { @@ -27,7 +29,9 @@ task("deploy:semaphore", "Deploy a Semaphore contract") await incrementalBinaryTreeLib.deployed() - logs && console.log(`IncrementalBinaryTree library has been deployed to: ${incrementalBinaryTreeLib.address}`) + if (logs) { + console.info(`IncrementalBinaryTree library has been deployed to: ${incrementalBinaryTreeLib.address}`) + } const ContractFactory = await ethers.getContractFactory("Semaphore", { libraries: { @@ -39,7 +43,9 @@ task("deploy:semaphore", "Deploy a Semaphore contract") await contract.deployed() - logs && console.log(`Semaphore contract has been deployed to: ${contract.address}`) + if (logs) { + console.info(`Semaphore contract has been deployed to: ${contract.address}`) + } return contract }) diff --git a/tasks/deploy-verifier.ts b/packages/contracts/tasks/deploy-verifier.ts similarity index 82% rename from tasks/deploy-verifier.ts rename to packages/contracts/tasks/deploy-verifier.ts index 0bc4d9611..656bce348 100644 --- a/tasks/deploy-verifier.ts +++ b/packages/contracts/tasks/deploy-verifier.ts @@ -11,7 +11,9 @@ task("deploy:verifier", "Deploy a Verifier contract") await contract.deployed() - logs && console.log(`Verifier${depth} contract has been deployed to: ${contract.address}`) + if (logs) { + console.info(`Verifier${depth} contract has been deployed to: ${contract.address}`) + } return contract }) diff --git a/test/Semaphore.ts b/packages/contracts/test/Semaphore.ts similarity index 96% rename from test/Semaphore.ts rename to packages/contracts/test/Semaphore.ts index 2fef9c47f..b2801152a 100644 --- a/test/Semaphore.ts +++ b/packages/contracts/test/Semaphore.ts @@ -1,3 +1,5 @@ +/* eslint-disable @typescript-eslint/no-shadow */ +/* eslint-disable jest/valid-expect */ import { Group } from "@semaphore-protocol/group" import { Identity } from "@semaphore-protocol/identity" import { FullProof, generateProof, packToSolidityProof, SolidityProof } from "@semaphore-protocol/proof" @@ -109,12 +111,6 @@ describe("Semaphore", () => { }) describe("# addMembers", () => { - it("Should not add members if the caller is not the group admin", async () => { - const transaction = contract.connect(signers[1]).addMembers(groupId, [1, 2, 3]) - - await expect(transaction).to.be.revertedWith("Semaphore__CallerIsNotTheGroupAdmin()") - }) - it("Should add new members to an existing group", async () => { const groupId = 3 const members = [BigInt(1), BigInt(2), BigInt(3)] @@ -132,7 +128,9 @@ describe("Semaphore", () => { describe("# updateMember", () => { it("Should not update a member if the caller is not the group admin", async () => { - const transaction = contract.connect(signers[1]).updateMember(groupId, members[0], 1, [0, 1], [0, 1]) + const member = BigInt(2) + + const transaction = contract.connect(signers[1]).updateMember(groupId, member, 1, [0, 1], [0, 1]) await expect(transaction).to.be.revertedWith("Semaphore__CallerIsNotTheGroupAdmin()") }) @@ -161,7 +159,9 @@ describe("Semaphore", () => { describe("# removeMember", () => { it("Should not remove a member if the caller is not the group admin", async () => { - const transaction = contract.connect(signers[1]).removeMember(groupId, members[0], [0, 1], [0, 1]) + const member = BigInt(2) + + const transaction = contract.connect(signers[1]).removeMember(groupId, member, [0, 1], [0, 1]) await expect(transaction).to.be.revertedWith("Semaphore__CallerIsNotTheGroupAdmin()") }) diff --git a/test/SemaphoreVoting.ts b/packages/contracts/test/SemaphoreVoting.ts similarity index 99% rename from test/SemaphoreVoting.ts rename to packages/contracts/test/SemaphoreVoting.ts index 474ed7e95..05a20f346 100644 --- a/test/SemaphoreVoting.ts +++ b/packages/contracts/test/SemaphoreVoting.ts @@ -1,3 +1,4 @@ +/* eslint-disable jest/valid-expect */ import { Identity } from "@semaphore-protocol/identity" import { Group } from "@semaphore-protocol/group" import { diff --git a/test/SemaphoreWhistleblowing.ts b/packages/contracts/test/SemaphoreWhistleblowing.ts similarity index 99% rename from test/SemaphoreWhistleblowing.ts rename to packages/contracts/test/SemaphoreWhistleblowing.ts index 7a2d0a5a2..d16b46012 100644 --- a/test/SemaphoreWhistleblowing.ts +++ b/packages/contracts/test/SemaphoreWhistleblowing.ts @@ -1,3 +1,4 @@ +/* eslint-disable jest/valid-expect */ import { Group } from "@semaphore-protocol/group" import { Identity } from "@semaphore-protocol/identity" import { diff --git a/test/utils.ts b/packages/contracts/test/utils.ts similarity index 80% rename from test/utils.ts rename to packages/contracts/test/utils.ts index fd2f8a671..75ece636d 100644 --- a/test/utils.ts +++ b/packages/contracts/test/utils.ts @@ -1,9 +1,10 @@ import { Identity } from "@semaphore-protocol/identity" +// eslint-disable-next-line import/prefer-default-export export function createIdentityCommitments(n: number): bigint[] { const identityCommitments: bigint[] = [] - for (let i = 0; i < n; i++) { + for (let i = 0; i < n; i += 1) { const identity = new Identity(i.toString()) const identityCommitment = identity.generateCommitment() diff --git a/packages/contracts/tsconfig.json b/packages/contracts/tsconfig.json new file mode 100644 index 000000000..89900dbf0 --- /dev/null +++ b/packages/contracts/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "moduleResolution": "Node", + "noImplicitAny": true, + "resolveJsonModule": true, + "target": "ES2018", + "module": "CommonJS", + "strict": true, + "esModuleInterop": true, + "outDir": "dist", + "typeRoots": ["node_modules/@types", "../../types"] + }, + "include": ["scripts/**/*", "tasks/**/*", "test/**/*", "build/typechain/**/*", "types/**/*"], + "files": ["hardhat.config.ts"] +} diff --git a/packages/group/LICENSE b/packages/group/LICENSE new file mode 100644 index 000000000..bdb9b1e08 --- /dev/null +++ b/packages/group/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Ethereum Foundation + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/group/README.md b/packages/group/README.md new file mode 100644 index 000000000..857b64d4b --- /dev/null +++ b/packages/group/README.md @@ -0,0 +1,127 @@ +

    +

    + Semaphore group +

    +

    A library to create and manage Semaphore groups.

    +

    + +

    + + + + + Github license + + + NPM version + + + Downloads + + + Linter eslint + + + Code style prettier + +

    + + + +| This library is an abstraction of [`@zk-kit/incremental-merkle-tree`](https://github.com/privacy-scaling-explorations/zk-kit/tree/main/packages/incremental-merkle-tree). The main goal is to make it easier to create offchain groups, which are also used to generate Semaphore proofs. Semaphore groups are actually incremental Merkle trees, and the group members are tree leaves. Since the Merkle tree implementation we are using is a binary tree, the maximum number of members of a group is equal to `2^treeDepth`. | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + +## 🛠 Install + +### npm or yarn + +Install the `@semaphore-protocol/group` package with npm: + +```bash +npm i @semaphore-protocol/group +``` + +or yarn: + +```bash +yarn add @semaphore-protocol/group +``` + +## 📜 Usage + +\# **new Group**(treeDepth = 20, zeroValue = BigInt(0)): _Group_ + +```typescript +import { Group } from "@semaphore-protocol/group" + +// Group with max 1048576 members (20^²). +const group1 = new Group() + +// Group with max 65536 members (16^²). +const group2 = new Group(16) + +// Group with max 16777216 members (24^²). +const group3 = new Group(24) +``` + +\# **addMember**(identityCommitment: _Member_) + +```typescript +import { Identity } from "@semaphore-protocol/identity" + +const identity = new Identity() +const commitment = identity.generateCommitment() + +group.addMember(commitment) +``` + +\# **addMembers**(identityCommitments: _Member\[]_) + +```typescript +let identityCommitments: bigint[] + +for (let i = 0; i < 10; i++) { + const identity = new Identity() + const commitment = identity.generateCommitment() + + identityCommitments.push(commitment) +} + +group.addMember(identityCommitments) +``` + +\# **removeMember**(index: _number_) + +```typescript +group.removeMember(0) +``` + +\# **indexOf**(member: _Member_): _number_ + +```typescript +group.indexOf(commitment) // 0 +``` + +\# **generateProofOfMembership**(index: _number_): _MerkleProof_ + +```typescript +const proof = group.generateProofOfMembership(0) +``` diff --git a/packages/group/build.tsconfig.json b/packages/group/build.tsconfig.json new file mode 100644 index 000000000..2d4a1d6da --- /dev/null +++ b/packages/group/build.tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "baseUrl": ".", + "declarationDir": "dist/types" + }, + "include": ["src"] +} diff --git a/packages/group/package.json b/packages/group/package.json new file mode 100644 index 000000000..7f879786b --- /dev/null +++ b/packages/group/package.json @@ -0,0 +1,41 @@ +{ + "name": "@semaphore-protocol/group", + "version": "2.2.0", + "description": "A library to create and manage Semaphore groups.", + "license": "MIT", + "main": "dist/index.node.js", + "exports": { + "import": "./dist/index.mjs", + "require": "./dist/index.node.js" + }, + "types": "dist/types/index.d.ts", + "files": [ + "dist/", + "src/", + "LICENSE", + "README.md" + ], + "repository": "https://github.com/semaphore-protocol/semaphore", + "homepage": "https://github.com/semaphore-protocol/semaphore/tree/main/packages/group", + "bugs": { + "url": "https://github.com/semaphore-protocol/semaphore.git/issues" + }, + "scripts": { + "build:watch": "rollup -c rollup.config.ts -w --configPlugin typescript", + "build": "rimraf dist && rollup -c rollup.config.ts --configPlugin typescript", + "prepublishOnly": "yarn build", + "docs": "typedoc src/index.ts --out ../../docs/group" + }, + "publishConfig": { + "access": "public" + }, + "devDependencies": { + "rollup-plugin-cleanup": "^3.2.1", + "rollup-plugin-typescript2": "^0.31.2", + "typedoc": "^0.22.11" + }, + "dependencies": { + "@zk-kit/incremental-merkle-tree": "1.0.0", + "circomlibjs": "0.0.8" + } +} diff --git a/packages/group/rollup.config.ts b/packages/group/rollup.config.ts new file mode 100644 index 000000000..9ec2ab68c --- /dev/null +++ b/packages/group/rollup.config.ts @@ -0,0 +1,29 @@ +import typescript from "rollup-plugin-typescript2" +import * as fs from "fs" +import cleanup from "rollup-plugin-cleanup" + +const pkg = JSON.parse(fs.readFileSync("./package.json", "utf-8")) +const banner = `/** + * @module ${pkg.name} + * @version ${pkg.version} + * @file ${pkg.description} + * @copyright Ethereum Foundation 2022 + * @license ${pkg.license} + * @see [Github]{@link ${pkg.homepage}} +*/` + +export default { + input: "src/index.ts", + output: [ + { file: pkg.exports.require, format: "cjs", banner, exports: "auto" }, + { file: pkg.exports.import, format: "es", banner } + ], + external: Object.keys(pkg.dependencies), + plugins: [ + typescript({ + tsconfig: "./build.tsconfig.json", + useTsconfigDeclarationDir: true + }), + cleanup({ comments: "jsdoc" }) + ] +} diff --git a/packages/group/src/group.test.ts b/packages/group/src/group.test.ts new file mode 100644 index 000000000..51ff68fdd --- /dev/null +++ b/packages/group/src/group.test.ts @@ -0,0 +1,95 @@ +import Group from "./group" + +describe("Group", () => { + describe("# Group", () => { + it("Should create a group", () => { + const group = new Group() + + expect(group.root.toString()).toContain("150197") + expect(group.depth).toBe(20) + expect(group.zeroValue).toBe(BigInt(0)) + expect(group.members).toHaveLength(0) + }) + + it("Should not create a group with a wrong tree depth", () => { + const fun = () => new Group(33) + + expect(fun).toThrow("The tree depth must be between 16 and 32") + }) + + it("Should create a group with different parameters", () => { + const group = new Group(32, BigInt(1)) + + expect(group.root.toString()).toContain("640470") + expect(group.depth).toBe(32) + expect(group.zeroValue).toBe(BigInt(1)) + expect(group.members).toHaveLength(0) + }) + }) + + describe("# addMember", () => { + it("Should add a member to a group", () => { + const group = new Group() + + group.addMember(BigInt(3)) + + expect(group.members).toHaveLength(1) + }) + }) + + describe("# addMembers", () => { + it("Should add many members to a group", () => { + const group = new Group() + + group.addMembers([BigInt(1), BigInt(3)]) + + expect(group.members).toHaveLength(2) + }) + }) + + describe("# indexOf", () => { + it("Should return the index of a member in a group", () => { + const group = new Group() + group.addMembers([BigInt(1), BigInt(3)]) + + const index = group.indexOf(BigInt(3)) + + expect(index).toBe(1) + }) + }) + + describe("# updateMember", () => { + it("Should update a member in a group", () => { + const group = new Group() + group.addMembers([BigInt(1), BigInt(3)]) + + group.updateMember(0, BigInt(1)) + + expect(group.members).toHaveLength(2) + expect(group.members[0]).toBe(BigInt(1)) + }) + }) + + describe("# removeMember", () => { + it("Should remove a member from a group", () => { + const group = new Group() + group.addMembers([BigInt(1), BigInt(3)]) + + group.removeMember(0) + + expect(group.members).toHaveLength(2) + expect(group.members[0]).toBe(group.zeroValue) + }) + }) + + describe("# generateProofOfMembership", () => { + it("Should generate a proof of membership", () => { + const group = new Group() + group.addMembers([BigInt(1), BigInt(3)]) + + const proof = group.generateProofOfMembership(0) + + expect(proof.leaf).toBe(BigInt(1)) + }) + }) +}) diff --git a/packages/group/src/group.ts b/packages/group/src/group.ts new file mode 100644 index 000000000..6aa85d9d1 --- /dev/null +++ b/packages/group/src/group.ts @@ -0,0 +1,109 @@ +import { IncrementalMerkleTree, MerkleProof } from "@zk-kit/incremental-merkle-tree" +import { poseidon } from "circomlibjs" +import { Member } from "./types" + +export default class Group { + private _merkleTree: IncrementalMerkleTree + + /** + * Initializes the group with the tree depth and the zero value. + * @param treeDepth Tree depth. + * @param zeroValue Zero values for zeroes. + */ + constructor(treeDepth = 20, zeroValue: Member = BigInt(0)) { + if (treeDepth < 16 || treeDepth > 32) { + throw new Error("The tree depth must be between 16 and 32") + } + + this._merkleTree = new IncrementalMerkleTree(poseidon, treeDepth, zeroValue, 2) + } + + /** + * Returns the root hash of the tree. + * @returns Root hash. + */ + get root(): Member { + return this._merkleTree.root + } + + /** + * Returns the depth of the tree. + * @returns Tree depth. + */ + get depth(): number { + return this._merkleTree.depth + } + + /** + * Returns the zero value of the tree. + * @returns Tree zero value. + */ + get zeroValue(): Member { + return this._merkleTree.zeroes[0] + } + + /** + * Returns the members (i.e. identity commitments) of the group. + * @returns List of members. + */ + get members(): Member[] { + return this._merkleTree.leaves + } + + /** + * Returns the index of a member. If the member does not exist it returns -1. + * @param member Group member. + * @returns Index of the member. + */ + indexOf(member: Member): number { + return this._merkleTree.indexOf(member) + } + + /** + * Adds a new member to the group. + * @param identityCommitment New member. + */ + addMember(identityCommitment: Member) { + this._merkleTree.insert(BigInt(identityCommitment)) + } + + /** + * Adds new members to the group. + * @param identityCommitments New members. + */ + addMembers(identityCommitments: Member[]) { + for (const identityCommitment of identityCommitments) { + this.addMember(identityCommitment) + } + } + + /** + * Updates a member in the group. + * @param index Index of the member to be updated. + * @param identityCommitment New member value. + */ + updateMember(index: number, identityCommitment: Member) { + this._merkleTree.update(index, identityCommitment) + } + + /** + * Removes a member from the group. + * @param index Index of the member to be removed. + */ + removeMember(index: number) { + this._merkleTree.delete(index) + } + + /** + * Creates a proof of membership. + * @param index Index of the proof's member. + * @returns Proof object. + */ + generateProofOfMembership(index: number): MerkleProof { + const merkleProof = this._merkleTree.createProof(index) + + merkleProof.siblings = merkleProof.siblings.map((s) => s[0]) + + return merkleProof + } +} diff --git a/packages/group/src/index.ts b/packages/group/src/index.ts new file mode 100644 index 000000000..a07c76f16 --- /dev/null +++ b/packages/group/src/index.ts @@ -0,0 +1,4 @@ +import Group from "./group" + +export { Group } +export * from "./types" diff --git a/packages/group/src/types/index.ts b/packages/group/src/types/index.ts new file mode 100644 index 000000000..43c284df7 --- /dev/null +++ b/packages/group/src/types/index.ts @@ -0,0 +1 @@ +export type Member = string | bigint diff --git a/packages/group/tsconfig.json b/packages/group/tsconfig.json new file mode 100644 index 000000000..dfaf0c1ad --- /dev/null +++ b/packages/group/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.json", + "include": ["src", "rollup.config.ts"] +} diff --git a/packages/identity/LICENSE b/packages/identity/LICENSE new file mode 100644 index 000000000..bdb9b1e08 --- /dev/null +++ b/packages/identity/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Ethereum Foundation + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/identity/README.md b/packages/identity/README.md new file mode 100644 index 000000000..059146fae --- /dev/null +++ b/packages/identity/README.md @@ -0,0 +1,101 @@ +

    +

    + Semaphore identity +

    +

    A library to create Semaphore identities.

    +

    + +

    + + + + + Github license + + + NPM version + + + Downloads + + + Linter eslint + + + Code style prettier + +

    + + + +| This library provides a class that can be used to create identities compatible with the Semaphore [circuits](https://github.com/semaphore-protocol/semaphore/tree/main/circuits). Each identity contains two private values (_trapdoor_ and _nullifier_), and the Poseidon hash of these values (_commitment_) is used as the public identifier of the Semaphore identity. | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + +## 🛠 Install + +### npm or yarn + +Install the `@semaphore-protocol/identity` package with npm: + +```bash +npm i @semaphore-protocol/identity +``` + +or yarn: + +```bash +yarn add @semaphore-protocol/identity +``` + +## 📜 Usage + +\# **new Identity**(identityOrMessage?: _string_): _Identity_ + +```typescript +import { Identity } from "@semaphore-protocol/identity" + +// Trapdoor and nullifier are generated randomly. +const identity1 = new Identity() + +// Trapdoor and nullifier are generated deterministically from a secret message. +const identity2 = new Identity("secret-message") + +// Trapdoor and nullifier are generated from an existing identity. +const identity3 = new Identity(identity1.toString()) +``` + +\# **getTrapdoor**(): _bigint_ + +```typescript +const trapdoor = identity.getTrapdoor() +``` + +\# **getNullifier**(): _bigint_ + +```typescript +const nullifier = identity.getNullifier() +``` + +\# **generateCommitment**(): _bigint_ + +```typescript +const commitment = identity.generateCommitment() +``` diff --git a/packages/identity/build.tsconfig.json b/packages/identity/build.tsconfig.json new file mode 100644 index 000000000..2d4a1d6da --- /dev/null +++ b/packages/identity/build.tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "baseUrl": ".", + "declarationDir": "dist/types" + }, + "include": ["src"] +} diff --git a/packages/identity/package.json b/packages/identity/package.json new file mode 100644 index 000000000..10365f3a5 --- /dev/null +++ b/packages/identity/package.json @@ -0,0 +1,44 @@ +{ + "name": "@semaphore-protocol/identity", + "version": "2.0.0", + "description": "A library to create Semaphore identities.", + "license": "MIT", + "main": "dist/index.node.js", + "exports": { + "import": "./dist/index.mjs", + "require": "./dist/index.node.js" + }, + "types": "dist/types/index.d.ts", + "files": [ + "dist/", + "src/", + "LICENSE", + "README.md" + ], + "repository": "https://github.com/semaphore-protocol/semaphore", + "homepage": "https://github.com/semaphore-protocol/semaphore/tree/main/packages/identity", + "bugs": { + "url": "https://github.com/semaphore-protocol/semaphore.git/issues" + }, + "scripts": { + "build:watch": "rollup -c rollup.config.ts -w --configPlugin typescript", + "build": "rimraf dist && rollup -c rollup.config.ts --configPlugin typescript", + "prepublishOnly": "yarn build", + "docs": "typedoc src/index.ts --out ../../docs/identity" + }, + "publishConfig": { + "access": "public" + }, + "devDependencies": { + "rollup-plugin-cleanup": "^3.2.1", + "rollup-plugin-typescript2": "^0.31.2", + "typedoc": "^0.22.11" + }, + "dependencies": { + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/random": "^5.5.1", + "@ethersproject/sha2": "^5.6.1", + "@ethersproject/strings": "^5.6.1", + "circomlibjs": "0.0.8" + } +} diff --git a/packages/identity/rollup.config.ts b/packages/identity/rollup.config.ts new file mode 100644 index 000000000..9ec2ab68c --- /dev/null +++ b/packages/identity/rollup.config.ts @@ -0,0 +1,29 @@ +import typescript from "rollup-plugin-typescript2" +import * as fs from "fs" +import cleanup from "rollup-plugin-cleanup" + +const pkg = JSON.parse(fs.readFileSync("./package.json", "utf-8")) +const banner = `/** + * @module ${pkg.name} + * @version ${pkg.version} + * @file ${pkg.description} + * @copyright Ethereum Foundation 2022 + * @license ${pkg.license} + * @see [Github]{@link ${pkg.homepage}} +*/` + +export default { + input: "src/index.ts", + output: [ + { file: pkg.exports.require, format: "cjs", banner, exports: "auto" }, + { file: pkg.exports.import, format: "es", banner } + ], + external: Object.keys(pkg.dependencies), + plugins: [ + typescript({ + tsconfig: "./build.tsconfig.json", + useTsconfigDeclarationDir: true + }), + cleanup({ comments: "jsdoc" }) + ] +} diff --git a/packages/identity/src/checkParameter.ts b/packages/identity/src/checkParameter.ts new file mode 100644 index 000000000..c68474f3a --- /dev/null +++ b/packages/identity/src/checkParameter.ts @@ -0,0 +1,5 @@ +export default function checkParameter(value: any, name: string, type: string) { + if (typeof value !== type) { + throw new TypeError(`Parameter '${name}' is not a ${type}`) + } +} diff --git a/packages/identity/src/identity.test.ts b/packages/identity/src/identity.test.ts new file mode 100644 index 000000000..9044b3395 --- /dev/null +++ b/packages/identity/src/identity.test.ts @@ -0,0 +1,114 @@ +import { BigNumber } from "@ethersproject/bignumber" +import Identity from "./identity" + +describe("Identity", () => { + describe("# Identity", () => { + it("Should not create a identity if the parameter is not valid", () => { + const fun1 = () => new Identity(13 as any) + const fun2 = () => new Identity(true as any) + const fun3 = () => new Identity((() => true) as any) + + expect(fun1).toThrow("Parameter 'identityOrMessage' is not a string") + expect(fun2).toThrow("Parameter 'identityOrMessage' is not a string") + expect(fun3).toThrow("Parameter 'identityOrMessage' is not a string") + }) + + it("Should create random identities", () => { + const identity1 = new Identity() + const identity2 = new Identity() + + expect(identity1.getTrapdoor()).not.toBe(identity2.getTrapdoor()) + expect(identity1.getNullifier()).not.toBe(identity2.getNullifier()) + }) + + it("Should create deterministic identities from a message", () => { + const identity1 = new Identity("message") + const identity2 = new Identity("message") + + expect(identity1.getTrapdoor()).toBe(identity2.getTrapdoor()) + expect(identity1.getNullifier()).toBe(identity2.getNullifier()) + }) + + it("Should create deterministic identities from number/boolean messages", () => { + const identity1 = new Identity("true") + const identity2 = new Identity("true") + const identity3 = new Identity("7") + const identity4 = new Identity("7") + + expect(identity1.getTrapdoor()).toBe(identity2.getTrapdoor()) + expect(identity1.getNullifier()).toBe(identity2.getNullifier()) + expect(identity3.getTrapdoor()).toBe(identity4.getTrapdoor()) + expect(identity3.getNullifier()).toBe(identity4.getNullifier()) + }) + + it("Should not recreate an existing invalid identity", () => { + const fun = () => new Identity('[true, "01323"]') + + expect(fun).toThrow("invalid BigNumber string") + }) + + it("Should recreate an existing identity", () => { + const identity1 = new Identity("message") + + const identity2 = new Identity(identity1.toString()) + + expect(identity1.getTrapdoor()).toBe(identity2.getTrapdoor()) + expect(identity1.getNullifier()).toBe(identity2.getNullifier()) + }) + }) + + describe("# getTrapdoor", () => { + it("Should return the identity trapdoor", () => { + const identity = new Identity("message") + + const trapdoor = identity.getTrapdoor() + + expect(trapdoor).toBe( + BigInt("58952291509798197436757858062402199043831251943841934828591473955215726495831") + ) + }) + }) + + describe("# getNullifier", () => { + it("Should return the identity nullifier", () => { + const identity = new Identity("message") + + const nullifier = identity.getNullifier() + + expect(nullifier).toBe( + BigInt("44673097405870585416457571638073245190425597599743560105244308998175651589997") + ) + }) + }) + + describe("# generateCommitment", () => { + it("Should generate an identity commitment", () => { + const identity = new Identity("message") + + const commitment = identity.generateCommitment() + + expect(commitment).toBe( + BigInt("1720349790382552497189398984241859233944354304766757200361065203741879866188") + ) + }) + }) + + describe("# toString", () => { + it("Should return a string", () => { + const identity = new Identity("message") + + const identityString = identity.toString() + + expect(typeof identityString).toBe("string") + }) + + it("Should return a valid identity string", () => { + const identity = new Identity("message") + + const [trapdoor, nullifier] = JSON.parse(identity.toString()) + + expect(BigNumber.from(`0x${trapdoor}`).toBigInt()).toBe(identity.getTrapdoor()) + expect(BigNumber.from(`0x${nullifier}`).toBigInt()).toBe(identity.getNullifier()) + }) + }) +}) diff --git a/packages/identity/src/identity.ts b/packages/identity/src/identity.ts new file mode 100644 index 000000000..e8d06a1f7 --- /dev/null +++ b/packages/identity/src/identity.ts @@ -0,0 +1,71 @@ +import { BigNumber } from "@ethersproject/bignumber" +import { poseidon } from "circomlibjs" +import checkParameter from "./checkParameter" +import { genRandomNumber, isJsonArray, sha256 } from "./utils" + +export default class Identity { + private _trapdoor: bigint + private _nullifier: bigint + + /** + * Initializes the class attributes based on the strategy passed as parameter. + * @param identityOrMessage Additional data needed to create identity for given strategy. + */ + constructor(identityOrMessage?: string) { + if (identityOrMessage === undefined) { + this._trapdoor = genRandomNumber() + this._nullifier = genRandomNumber() + + return + } + + checkParameter(identityOrMessage, "identityOrMessage", "string") + + if (!isJsonArray(identityOrMessage)) { + const messageHash = sha256(identityOrMessage).slice(2) + + this._trapdoor = BigNumber.from(sha256(`${messageHash}identity_trapdoor`)).toBigInt() + this._nullifier = BigNumber.from(sha256(`${messageHash}identity_nullifier`)).toBigInt() + + return + } + + const [trapdoor, nullifier] = JSON.parse(identityOrMessage) + + this._trapdoor = BigNumber.from(`0x${trapdoor}`).toBigInt() + this._nullifier = BigNumber.from(`0x${nullifier}`).toBigInt() + } + + /** + * Returns the identity trapdoor. + * @returns The identity trapdoor. + */ + public getTrapdoor(): bigint { + return this._trapdoor + } + + /** + * Returns the identity nullifier. + * @returns The identity nullifier. + */ + public getNullifier(): bigint { + return this._nullifier + } + + /** + * Generates the identity commitment from trapdoor and nullifier. + * @returns identity commitment + */ + public generateCommitment(): bigint { + return poseidon([poseidon([this._nullifier, this._trapdoor])]) + } + + /** + * Returns a JSON string with trapdoor and nullifier. It can be used + * to export the identity and reuse it later. + * @returns The string representation of the identity. + */ + public toString(): string { + return JSON.stringify([this._trapdoor.toString(16), this._nullifier.toString(16)]) + } +} diff --git a/packages/identity/src/index.ts b/packages/identity/src/index.ts new file mode 100644 index 000000000..cb3d48b7b --- /dev/null +++ b/packages/identity/src/index.ts @@ -0,0 +1,4 @@ +import Identity from "./identity" + +// eslint-disable-next-line import/prefer-default-export +export { Identity } diff --git a/packages/identity/src/utils.ts b/packages/identity/src/utils.ts new file mode 100644 index 000000000..c2007af72 --- /dev/null +++ b/packages/identity/src/utils.ts @@ -0,0 +1,37 @@ +import { BigNumber } from "@ethersproject/bignumber" +import { randomBytes } from "@ethersproject/random" +import { sha256 as _sha256 } from "@ethersproject/sha2" +import { toUtf8Bytes } from "@ethersproject/strings" + +/** + * Returns an hexadecimal sha256 hash of the message passed as parameter. + * @param message The string to hash. + * @returns The hexadecimal hash of the message. + */ +export function sha256(message: string): string { + const hash = _sha256(toUtf8Bytes(message)) + + return hash +} + +/** + * Generates a random big number. + * @param numberOfBytes The number of bytes of the number. + * @returns The generated random number. + */ +export function genRandomNumber(numberOfBytes = 31): bigint { + return BigNumber.from(randomBytes(numberOfBytes)).toBigInt() +} + +/** + * Checks if a string is a JSON. + * @param jsonString The JSON string. + * @returns True or false. + */ +export function isJsonArray(jsonString: string) { + try { + return Array.isArray(JSON.parse(jsonString)) + } catch (error) { + return false + } +} diff --git a/packages/identity/tsconfig.json b/packages/identity/tsconfig.json new file mode 100644 index 000000000..dfaf0c1ad --- /dev/null +++ b/packages/identity/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.json", + "include": ["src", "rollup.config.ts"] +} diff --git a/packages/proof/LICENSE b/packages/proof/LICENSE new file mode 100644 index 000000000..bdb9b1e08 --- /dev/null +++ b/packages/proof/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Ethereum Foundation + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/proof/README.md b/packages/proof/README.md new file mode 100644 index 000000000..2514c836f --- /dev/null +++ b/packages/proof/README.md @@ -0,0 +1,125 @@ +

    +

    + Semaphore proof +

    +

    A library to generate and verify Semaphore proofs.

    +

    + +

    + + + + + Github license + + + NPM version + + + Downloads + + + Linter eslint + + + Code style prettier + +

    + + + +| This library provides utility functions to generate and verify Semaphore proofs compatible with the Semaphore [circuits](https://github.com/semaphore-protocol/semaphore/tree/main/circuits). Generating valid zero-knowledge proofs requires files that can only be obtained in an attested [trusted-setup ceremony](https://storage.googleapis.com/trustedsetup-a86f4.appspot.com/semaphore/semaphore_top_index.html). For a complete list of ready-to-use files visit [trusted-setup-pse.org](http://www.trusted-setup-pse.org/). | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | + +## 🛠 Install + +### npm or yarn + +Install the `@semaphore-protocol/proof` package with npm: + +```bash +npm i @semaphore-protocol/proof +``` + +or yarn: + +```bash +yarn add @semaphore-protocol/proof +``` + +## 📜 Usage + +\# **generateProof**(identity: _Identity_, group: _Group_, externalNullifier: _BigNumberish_, signal: _string_, snarkArtifacts?: _SnarkArtifacts_): Promise\<_SemaphoreFullProof_> + +```typescript +import { Identity } from "@semaphore-protocol/identity" +import { Group } from "@semaphore-protocol/group" +import { generateProof } from "@semaphore-protocol/proof" + +const identity = new Identity() +const group = new Group() +const externalNullifier = BigInt(1) +const signal = "Hello world" + +group.addMembers([...identityCommitments, identity.generateCommitment()]) + +const fullProof = await generateProof(identity, merkleProof, externalNullifier, signal, { + zkeyFilePath: "./semaphore.zkey", + wasmFilePath: "./semaphore.wasm" +}) + +// You can also use the default zkey/wasm files (only for browsers!). +// const fullProof = await generateProof(identity, merkleProof, externalNullifier, signal) +``` + +\# **verifyProof**(verificationKey: _any_, fullProof: _FullProof_): Promise\<_boolean_> + +```typescript +import { verifyProof } from "@semaphore-protocol/proof" + +const verificationKey = JSON.parse(fs.readFileSync("/semaphore.json", "utf-8")) + +await verifyProof(verificationKey, fullProof) +``` + +\# **packToSolidityProof**(proof: _Proof_): _SolidityProof_ + +```typescript +import { packToSolidityProof } from "@semaphore-protocol/proof" + +const solidityProof = packToSolidityProof(fullProof.proof) +``` + +\# **generateNullifierHash**(externalNullifier: _BigNumberish_, identityNullifier: _BigNumberish_): _bigint_ + +```typescript +import { generateNullifierHash } from "@semaphore-protocol/proof" + +const nullifierHash = generateNullifierHash(externalNullifier, identity.getNullifier()) +``` + +\# **generateSignalHash**(signal: _string_): _bigint_ + +```typescript +import { generateSignalHash } from "@semaphore-protocol/proof" + +const signalHash = generateSignalHash(signal) +``` diff --git a/packages/proof/build.tsconfig.json b/packages/proof/build.tsconfig.json new file mode 100644 index 000000000..2d4a1d6da --- /dev/null +++ b/packages/proof/build.tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "baseUrl": ".", + "declarationDir": "dist/types" + }, + "include": ["src"] +} diff --git a/packages/proof/package.json b/packages/proof/package.json new file mode 100644 index 000000000..1847bb5e8 --- /dev/null +++ b/packages/proof/package.json @@ -0,0 +1,49 @@ +{ + "name": "@semaphore-protocol/proof", + "version": "2.3.1", + "description": "A library to generate and verify Semaphore proofs.", + "license": "MIT", + "main": "dist/index.node.js", + "exports": { + "import": "./dist/index.mjs", + "require": "./dist/index.node.js" + }, + "types": "dist/types/index.d.ts", + "files": [ + "dist/", + "src/", + "LICENSE", + "README.md" + ], + "repository": "https://github.com/semaphore-protocol/semaphore", + "homepage": "https://github.com/semaphore-protocol/semaphore/tree/main/packages/proof", + "bugs": { + "url": "https://github.com/semaphore-protocol/semaphore.git/issues" + }, + "scripts": { + "build:watch": "rollup -c rollup.config.ts -w --configPlugin typescript", + "build": "rimraf dist && rollup -c rollup.config.ts --configPlugin typescript", + "prepublishOnly": "yarn build", + "docs": "typedoc src/index.ts --out ../../docs/proof" + }, + "publishConfig": { + "access": "public" + }, + "devDependencies": { + "download": "^8.0.0", + "ffjavascript": "^0.2.54", + "rollup-plugin-cleanup": "^3.2.1", + "rollup-plugin-typescript2": "^0.31.2", + "typedoc": "^0.22.11" + }, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/solidity": "^5.5.0", + "@ethersproject/strings": "^5.5.0", + "@semaphore-protocol/group": "2.2.0", + "@semaphore-protocol/identity": "2.0.0", + "@zk-kit/incremental-merkle-tree": "0.4.3", + "circomlibjs": "0.0.8", + "snarkjs": "^0.4.13" + } +} diff --git a/packages/proof/rollup.config.ts b/packages/proof/rollup.config.ts new file mode 100644 index 000000000..9ec2ab68c --- /dev/null +++ b/packages/proof/rollup.config.ts @@ -0,0 +1,29 @@ +import typescript from "rollup-plugin-typescript2" +import * as fs from "fs" +import cleanup from "rollup-plugin-cleanup" + +const pkg = JSON.parse(fs.readFileSync("./package.json", "utf-8")) +const banner = `/** + * @module ${pkg.name} + * @version ${pkg.version} + * @file ${pkg.description} + * @copyright Ethereum Foundation 2022 + * @license ${pkg.license} + * @see [Github]{@link ${pkg.homepage}} +*/` + +export default { + input: "src/index.ts", + output: [ + { file: pkg.exports.require, format: "cjs", banner, exports: "auto" }, + { file: pkg.exports.import, format: "es", banner } + ], + external: Object.keys(pkg.dependencies), + plugins: [ + typescript({ + tsconfig: "./build.tsconfig.json", + useTsconfigDeclarationDir: true + }), + cleanup({ comments: "jsdoc" }) + ] +} diff --git a/packages/proof/src/generateNullifierHash.ts b/packages/proof/src/generateNullifierHash.ts new file mode 100644 index 000000000..340f84923 --- /dev/null +++ b/packages/proof/src/generateNullifierHash.ts @@ -0,0 +1,15 @@ +import { poseidon } from "circomlibjs" +import { BigNumberish } from "./types" + +/** + * Generates a nullifier by hashing the external and the identity nullifiers. + * @param externalNullifier The external nullifier. + * @param identityNullifier The identity nullifier. + * @returns The nullifier hash. + */ +export default function generateNullifierHash( + externalNullifier: BigNumberish, + identityNullifier: BigNumberish +): bigint { + return poseidon([BigInt(externalNullifier), BigInt(identityNullifier)]) +} diff --git a/packages/proof/src/generateProof.ts b/packages/proof/src/generateProof.ts new file mode 100644 index 000000000..91df273c2 --- /dev/null +++ b/packages/proof/src/generateProof.ts @@ -0,0 +1,60 @@ +import { Group } from "@semaphore-protocol/group" +import type { Identity } from "@semaphore-protocol/identity" +import { MerkleProof } from "@zk-kit/incremental-merkle-tree" +import { groth16 } from "snarkjs" +import generateSignalHash from "./generateSignalHash" +import { BigNumberish, FullProof, SnarkArtifacts } from "./types" + +export default async function generateProof( + identity: Identity, + groupOrMerkleProof: Group | MerkleProof, + externalNullifier: BigNumberish, + signal: string, + snarkArtifacts?: SnarkArtifacts +): Promise { + const commitment = identity.generateCommitment() + + let merkleProof: MerkleProof + + if ("depth" in groupOrMerkleProof) { + const index = groupOrMerkleProof.indexOf(commitment) + + if (index === -1) { + throw new Error("The identity is not part of the group") + } + + merkleProof = groupOrMerkleProof.generateProofOfMembership(index) + } else { + merkleProof = groupOrMerkleProof + } + + if (!snarkArtifacts) { + snarkArtifacts = { + wasmFilePath: `https://www.trusted-setup-pse.org/semaphore/${merkleProof.siblings.length}/semaphore.wasm`, + zkeyFilePath: `https://www.trusted-setup-pse.org/semaphore/${merkleProof.siblings.length}/semaphore.zkey` + } + } + + const { proof, publicSignals } = await groth16.fullProve( + { + identityTrapdoor: identity.getTrapdoor(), + identityNullifier: identity.getNullifier(), + treePathIndices: merkleProof.pathIndices, + treeSiblings: merkleProof.siblings, + externalNullifier, + signalHash: generateSignalHash(signal) + }, + snarkArtifacts.wasmFilePath, + snarkArtifacts.zkeyFilePath + ) + + return { + proof, + publicSignals: { + merkleRoot: publicSignals[0], + nullifierHash: publicSignals[1], + signalHash: publicSignals[2], + externalNullifier: publicSignals[3] + } + } +} diff --git a/packages/proof/src/generateSignalHash.ts b/packages/proof/src/generateSignalHash.ts new file mode 100644 index 000000000..4da5a7988 --- /dev/null +++ b/packages/proof/src/generateSignalHash.ts @@ -0,0 +1,16 @@ +import { isHexString } from "@ethersproject/bytes" +import { keccak256 } from "@ethersproject/solidity" +import { formatBytes32String } from "@ethersproject/strings" + +/** + * Hashes a signal string with Keccak256. + * @param signal The Semaphore signal. + * @returns The signal hash. + */ +export default function genSignalHash(signal: string): bigint { + if (!isHexString(signal, 32)) { + signal = formatBytes32String(signal) + } + + return BigInt(keccak256(["bytes32"], [signal])) >> BigInt(8) +} diff --git a/packages/proof/src/index.test.ts b/packages/proof/src/index.test.ts new file mode 100644 index 000000000..3e37b248a --- /dev/null +++ b/packages/proof/src/index.test.ts @@ -0,0 +1,142 @@ +import { formatBytes32String } from "@ethersproject/strings" +import { Group } from "@semaphore-protocol/group" +import { Identity } from "@semaphore-protocol/identity" +import download from "download" +import { getCurveFromName } from "ffjavascript" +import fs from "fs" +import generateNullifierHash from "./generateNullifierHash" +import generateProof from "./generateProof" +import generateSignalHash from "./generateSignalHash" +import packToSolidityProof from "./packToSolidityProof" +import { FullProof } from "./types" +import verifyProof from "./verifyProof" + +describe("Proof", () => { + const treeDepth = 20 + + const externalNullifier = "1" + const signal = "0x111" + + const snarkArtifactsPath = "./packages/proof/snark-artifacts" + const snarkArtifactsUrl = `http://www.trusted-setup-pse.org/semaphore/${treeDepth}` + + const identity = new Identity() + const identityCommitment = identity.generateCommitment() + + let fullProof: FullProof + let curve: any + + beforeAll(async () => { + curve = await getCurveFromName("bn128") + + if (!fs.existsSync(snarkArtifactsPath)) { + fs.mkdirSync(snarkArtifactsPath) + } + + if (!fs.existsSync(`${snarkArtifactsPath}/semaphore.zkey`)) { + await download(`${snarkArtifactsUrl}/semaphore.wasm`, snarkArtifactsPath) + await download(`${snarkArtifactsUrl}/semaphore.zkey`, snarkArtifactsPath) + await download(`${snarkArtifactsUrl}/semaphore.json`, snarkArtifactsPath) + } + }, 10000) + + afterAll(async () => { + await curve.terminate() + }) + + describe("# generateProof", () => { + it("Should not generate Semaphore proofs if the identity is not part of the group", async () => { + const group = new Group(treeDepth) + + group.addMembers([BigInt(1), BigInt(2)]) + + const fun = () => + generateProof(identity, group, externalNullifier, signal, { + wasmFilePath: `${snarkArtifactsPath}/semaphore.wasm`, + zkeyFilePath: `${snarkArtifactsPath}/semaphore.zkey` + }) + + await expect(fun).rejects.toThrow("The identity is not part of the group") + }) + + it("Should not generate a Semaphore proof with default snark artifacts with Node.js", async () => { + const group = new Group(treeDepth) + + group.addMembers([BigInt(1), BigInt(2), identityCommitment]) + + const fun = () => generateProof(identity, group, externalNullifier, signal) + + await expect(fun).rejects.toThrow("ENOENT: no such file or directory") + }) + + it("Should generate a Semaphore proof passing a group as parameter", async () => { + const group = new Group(treeDepth) + + group.addMembers([BigInt(1), BigInt(2), identityCommitment]) + + fullProof = await generateProof(identity, group, externalNullifier, signal, { + wasmFilePath: `${snarkArtifactsPath}/semaphore.wasm`, + zkeyFilePath: `${snarkArtifactsPath}/semaphore.zkey` + }) + + expect(typeof fullProof).toBe("object") + expect(fullProof.publicSignals.externalNullifier).toBe(externalNullifier) + expect(fullProof.publicSignals.merkleRoot).toBe(group.root.toString()) + }, 20000) + + it("Should generate a Semaphore proof passing a Merkle proof as parametr", async () => { + const group = new Group(treeDepth) + + group.addMembers([BigInt(1), BigInt(2), identityCommitment]) + + fullProof = await generateProof(identity, group.generateProofOfMembership(2), externalNullifier, signal, { + wasmFilePath: `${snarkArtifactsPath}/semaphore.wasm`, + zkeyFilePath: `${snarkArtifactsPath}/semaphore.zkey` + }) + + expect(typeof fullProof).toBe("object") + expect(fullProof.publicSignals.externalNullifier).toBe(externalNullifier) + expect(fullProof.publicSignals.merkleRoot).toBe(group.root.toString()) + }, 20000) + }) + + describe("# generateSignalHash", () => { + it("Should generate a valid signal hash", async () => { + const signalHash = generateSignalHash(signal) + + expect(signalHash.toString()).toBe(fullProof.publicSignals.signalHash) + }) + + it("Should generate a valid signal hash by passing a valid hex string", async () => { + const signalHash = generateSignalHash(formatBytes32String(signal)) + + expect(signalHash.toString()).toBe(fullProof.publicSignals.signalHash) + }) + }) + + describe("# generateNullifierHash", () => { + it("Should generate a valid nullifier hash", async () => { + const nullifierHash = generateNullifierHash(externalNullifier, identity.getNullifier()) + + expect(nullifierHash.toString()).toBe(fullProof.publicSignals.nullifierHash) + }) + }) + + describe("# packToSolidityProof", () => { + it("Should return a Solidity proof", async () => { + const solidityProof = packToSolidityProof(fullProof.proof) + + expect(solidityProof).toHaveLength(8) + }) + }) + + describe("# verifyProof", () => { + it("Should generate and verify a Semaphore proof", async () => { + const verificationKey = JSON.parse(fs.readFileSync(`${snarkArtifactsPath}/semaphore.json`, "utf-8")) + + const response = await verifyProof(verificationKey, fullProof) + + expect(response).toBe(true) + }) + }) +}) diff --git a/packages/proof/src/index.ts b/packages/proof/src/index.ts new file mode 100644 index 000000000..b02139a4c --- /dev/null +++ b/packages/proof/src/index.ts @@ -0,0 +1,8 @@ +import generateNullifierHash from "./generateNullifierHash" +import generateProof from "./generateProof" +import verifyProof from "./verifyProof" +import generateSignalHash from "./generateSignalHash" +import packToSolidityProof from "./packToSolidityProof" + +export { generateNullifierHash, generateProof, verifyProof, generateSignalHash, packToSolidityProof } +export * from "./types" diff --git a/packages/proof/src/packToSolidityProof.ts b/packages/proof/src/packToSolidityProof.ts new file mode 100644 index 000000000..ac780e400 --- /dev/null +++ b/packages/proof/src/packToSolidityProof.ts @@ -0,0 +1,19 @@ +import { Proof, SolidityProof } from "./types" + +/** + * Makes a proof compatible with the Verifier.sol method inputs. + * @param proof The proof generated with SnarkJS. + * @returns The Solidity compatible proof. + */ +export default function packToSolidityProof(proof: Proof): SolidityProof { + return [ + proof.pi_a[0], + proof.pi_a[1], + proof.pi_b[0][1], + proof.pi_b[0][0], + proof.pi_b[1][1], + proof.pi_b[1][0], + proof.pi_c[0], + proof.pi_c[1] + ] +} diff --git a/packages/proof/src/types/index.ts b/packages/proof/src/types/index.ts new file mode 100644 index 000000000..8b9a23900 --- /dev/null +++ b/packages/proof/src/types/index.ts @@ -0,0 +1,37 @@ +export type BigNumberish = string | bigint + +export type SnarkArtifacts = { + wasmFilePath: string + zkeyFilePath: string +} + +export type Proof = { + pi_a: BigNumberish[] + pi_b: BigNumberish[][] + pi_c: BigNumberish[] + protocol: string + curve: string +} + +export type FullProof = { + proof: Proof + publicSignals: PublicSignals +} + +export type PublicSignals = { + merkleRoot: BigNumberish + nullifierHash: BigNumberish + signalHash: BigNumberish + externalNullifier: BigNumberish +} + +export type SolidityProof = [ + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish +] diff --git a/packages/proof/src/verifyProof.ts b/packages/proof/src/verifyProof.ts new file mode 100644 index 000000000..3dd6db089 --- /dev/null +++ b/packages/proof/src/verifyProof.ts @@ -0,0 +1,21 @@ +import { groth16 } from "snarkjs" +import { FullProof } from "./types" + +/** + * Verifies a SnarkJS proof. + * @param verificationKey The zero-knowledge verification key. + * @param fullProof The SnarkJS full proof. + * @returns True if the proof is valid, false otherwise. + */ +export default function verifyProof(verificationKey: any, { proof, publicSignals }: FullProof): Promise { + return groth16.verify( + verificationKey, + [ + publicSignals.merkleRoot, + publicSignals.nullifierHash, + publicSignals.signalHash, + publicSignals.externalNullifier + ], + proof + ) +} diff --git a/packages/proof/tsconfig.json b/packages/proof/tsconfig.json new file mode 100644 index 000000000..dfaf0c1ad --- /dev/null +++ b/packages/proof/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.json", + "include": ["src", "rollup.config.ts"] +} diff --git a/packages/subgraph/LICENSE b/packages/subgraph/LICENSE new file mode 100644 index 000000000..bdb9b1e08 --- /dev/null +++ b/packages/subgraph/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Ethereum Foundation + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/subgraph/README.md b/packages/subgraph/README.md new file mode 100644 index 000000000..707742126 --- /dev/null +++ b/packages/subgraph/README.md @@ -0,0 +1,112 @@ +

    +

    + Semaphore subgraph +

    +

    A library to query Semaphore contracts.

    +

    + +

    + + + + + Github license + + + NPM version + + + Downloads + + + Linter eslint + + + Code style prettier + +

    + + + +| This library allows you to query the [`Semaphore.sol`](https://github.com/semaphore-protocol/semaphore/blob/main/contracts/Semaphore.sol) contract data (i.e. groups) using the [Semaphore subgraph](https://github.com/semaphore-protocol/subgraph) on Kovan, Goerli, and Arbitrum One. It can be used on Node.js and browsers. | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + +## 🛠 Install + +### npm or yarn + +Install the `@semaphore-protocol/subgraph` package with npm: + +```bash +npm i @semaphore-protocol/subgraph +``` + +or yarn: + +```bash +yarn add @semaphore-protocol/subgraph +``` + +### CDN + +You can also load it using a `script` tag using [unpkg](https://unpkg.com/): + +```html + + +``` + +or [JSDelivr](https://www.jsdelivr.com/): + +```html + + +``` + +## 📜 Usage + +\# **new Subgraph**(network: _Network_ = "arbitrum" ): _Subgraph_ + +```typescript +import { Subgraph } from "@semaphore-protocol/subgraph" + +const subgraph = new Subgraph() +``` + +\# **getGroups**(options?: _GroupOptions_) + +```typescript +const groups = subgraph.getGroups() + +// or + +const groups = subgraph.getGroups({ members: true, signals: true }) +``` + +\# **getGroup**(groupId: _string_, options?: _GroupOptions_) + +```typescript +const group = subgraph.getGroup("1") + +// or + +const { members } = subgraph.getGroup("1", { members: true, signals: true }) +``` diff --git a/packages/subgraph/build.tsconfig.json b/packages/subgraph/build.tsconfig.json new file mode 100644 index 000000000..2d4a1d6da --- /dev/null +++ b/packages/subgraph/build.tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "baseUrl": ".", + "declarationDir": "dist/types" + }, + "include": ["src"] +} diff --git a/packages/subgraph/package.json b/packages/subgraph/package.json new file mode 100644 index 000000000..57ff3dc2d --- /dev/null +++ b/packages/subgraph/package.json @@ -0,0 +1,44 @@ +{ + "name": "@semaphore-protocol/subgraph", + "version": "2.1.0", + "description": "A library to query Semaphore contracts.", + "license": "MIT", + "iife": "dist/index.js", + "unpkg": "dist/index.min.js", + "jsdelivr": "dist/index.min.js", + "main": "dist/index.node.js", + "exports": { + "import": "./dist/index.mjs", + "require": "./dist/index.node.js" + }, + "types": "dist/types/index.d.ts", + "files": [ + "dist/", + "src/", + "LICENSE", + "README.md" + ], + "repository": "https://github.com/semaphore-protocol/semaphore", + "homepage": "https://github.com/semaphore-protocol/semaphore/tree/main/packages/subgraph", + "bugs": { + "url": "https://github.com/semaphore-protocol/semaphore.git/issues" + }, + "scripts": { + "build:watch": "rollup -c rollup.config.ts -w --configPlugin typescript", + "build": "rimraf dist && rollup -c rollup.config.ts --configPlugin typescript", + "prepublishOnly": "yarn build", + "docs": "typedoc src/index.ts --out ../../docs/subgraph" + }, + "publishConfig": { + "access": "public" + }, + "devDependencies": { + "rollup-plugin-cleanup": "^3.2.1", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-typescript2": "^0.31.2", + "typedoc": "^0.22.11" + }, + "dependencies": { + "axios": "^0.27.2" + } +} diff --git a/packages/subgraph/rollup.config.ts b/packages/subgraph/rollup.config.ts new file mode 100644 index 000000000..1feb666ad --- /dev/null +++ b/packages/subgraph/rollup.config.ts @@ -0,0 +1,42 @@ +import * as fs from "fs" +import cleanup from "rollup-plugin-cleanup" +import { terser } from "rollup-plugin-terser" +import typescript from "rollup-plugin-typescript2" + +const pkg = JSON.parse(fs.readFileSync("./package.json", "utf-8")) +const name = pkg.name.substr(1).replace(/[-/]./g, (x: string) => x.toUpperCase()[1]) +const banner = `/** + * @module ${pkg.name} + * @version ${pkg.version} + * @file ${pkg.description} + * @copyright Ethereum Foundation 2022 + * @license ${pkg.license} + * @see [Github]{@link ${pkg.homepage}} +*/` + +export default { + input: "src/index.ts", + output: [ + { + file: pkg.iife, + name, + format: "iife", + globals: { axios: "axios" }, + banner + }, + { + file: pkg.unpkg, + name, + format: "iife", + globals: { axios: "axios" }, + plugins: [terser({ output: { preamble: banner } })] + }, + { file: pkg.exports.require, format: "cjs", banner, exports: "auto" }, + { file: pkg.exports.import, format: "es", banner } + ], + external: Object.keys(pkg.dependencies), + plugins: [ + typescript({ tsconfig: "./build.tsconfig.json", useTsconfigDeclarationDir: true }), + cleanup({ comments: "jsdoc" }) + ] +} diff --git a/packages/subgraph/src/checkParameter.ts b/packages/subgraph/src/checkParameter.ts new file mode 100644 index 000000000..26f97c9d8 --- /dev/null +++ b/packages/subgraph/src/checkParameter.ts @@ -0,0 +1,11 @@ +/** + * Check if the parameter type is correct. + * @param value Parameter value. + * @param name Parameter name. + * @param type Expected parameter type. + */ +export default function checkParameter(value: any, name: string, type: string) { + if (typeof value !== type) { + throw new TypeError(`Parameter '${name}' is not ${type === "object" ? "an" : "a"} ${type}`) + } +} diff --git a/packages/subgraph/src/getURL.ts b/packages/subgraph/src/getURL.ts new file mode 100644 index 000000000..fde05c78e --- /dev/null +++ b/packages/subgraph/src/getURL.ts @@ -0,0 +1,16 @@ +import { Network } from "./types" + +/** + * Returns the subgraph URL related to the network passed as a parameter. + * @param network Semaphore supported network. + * @returns Subgraph URL. + */ +export default function getURL(network: Network): string { + switch (network) { + case "goerli": + case "arbitrum": + return `https://api.thegraph.com/subgraphs/name/semaphore-protocol/${network}` + default: + throw new TypeError(`Network '${network}' is not supported`) + } +} diff --git a/packages/subgraph/src/index.ts b/packages/subgraph/src/index.ts new file mode 100644 index 000000000..414419504 --- /dev/null +++ b/packages/subgraph/src/index.ts @@ -0,0 +1,4 @@ +import Subgraph from "./subgraph" + +export { Subgraph } +export * from "./types" diff --git a/packages/subgraph/src/request.ts b/packages/subgraph/src/request.ts new file mode 100644 index 000000000..975f2d4e2 --- /dev/null +++ b/packages/subgraph/src/request.ts @@ -0,0 +1,14 @@ +import axios, { AxiosRequestConfig, AxiosResponse } from "axios" + +/** + * Returns the response data of an HTTP request. + * @param url HTTP URL. + * @param config Axios request configuration. + * @returns Request data. + */ +/* istanbul ignore next */ +export default async function request(url: string, config?: AxiosRequestConfig): Promise { + const { data }: AxiosResponse = await axios(url, config) + + return data?.data +} diff --git a/packages/subgraph/src/subgraph.test.ts b/packages/subgraph/src/subgraph.test.ts new file mode 100644 index 000000000..559ce6fd9 --- /dev/null +++ b/packages/subgraph/src/subgraph.test.ts @@ -0,0 +1,215 @@ +import request from "./request" +import Subgraph from "./subgraph" + +jest.mock("./request", () => ({ + __esModule: true, + default: jest.fn() +})) + +const requestMocked = request as jest.MockedFunction + +describe("Subgraph", () => { + let subgraph: Subgraph + + describe("# Subgraph", () => { + it("Should instantiate a subgraph object", () => { + subgraph = new Subgraph("goerli") + const subgraph1 = new Subgraph() + + expect(subgraph.url).toContain("goerli") + expect(subgraph1.url).toContain("arbitrum") + }) + + it("Should throw an error if there is a wrong network", () => { + const fun = () => new Subgraph("wrong" as any) + + expect(fun).toThrow("Network 'wrong' is not supported") + }) + + it("Should throw an error if the network parameter type is wrong", () => { + const fun = () => new Subgraph(33 as any) + + expect(fun).toThrow("Parameter 'network' is not a string") + }) + }) + + describe("# getGroups", () => { + it("Should return all the existing groups", async () => { + requestMocked.mockImplementationOnce(() => + Promise.resolve({ + groups: [ + { + id: "1", + depth: 20, + zeroValue: 0, + numberOfLeaves: 2, + root: "2", + admin: "0x7bcd6f009471e9974a77086a69289d16eadba286" + } + ] + }) + ) + + const expectedValue = await subgraph.getGroups() + + expect(expectedValue).toBeDefined() + expect(Array.isArray(expectedValue)).toBeTruthy() + expect(expectedValue).toContainEqual({ + id: "1", + depth: 20, + zeroValue: 0, + numberOfLeaves: 2, + root: "2", + admin: "0x7bcd6f009471e9974a77086a69289d16eadba286" + }) + }) + + it("Should throw an error if the options parameter type is wrong", async () => { + const fun = () => subgraph.getGroups(1 as any) + + await expect(fun).rejects.toThrow("Parameter 'options' is not an object") + }) + + it("Should return all the existing groups with their members and signals", async () => { + requestMocked.mockImplementationOnce(() => + Promise.resolve({ + groups: [ + { + id: "1", + depth: 20, + zeroValue: 0, + numberOfLeaves: 2, + root: "2", + admin: "0x7bcd6f009471e9974a77086a69289d16eadba286", + members: [ + { + identityCommitment: "1" + }, + { + identityCommitment: "2" + } + ], + verifiedProofs: [ + { + signal: "0x3243b", + timestamp: "1657306917" + }, + { + signal: "0x5233a", + timestamp: "1657306923" + } + ] + } + ] + }) + ) + + const expectedValue = await subgraph.getGroups({ + members: true, + signals: true + }) + + expect(expectedValue).toBeDefined() + expect(Array.isArray(expectedValue)).toBeTruthy() + expect(expectedValue).toContainEqual({ + id: "1", + depth: 20, + zeroValue: 0, + numberOfLeaves: 2, + root: "2", + admin: "0x7bcd6f009471e9974a77086a69289d16eadba286", + members: ["1", "2"], + signals: ["0x3243b", "0x5233a"] + }) + }) + }) + + describe("# getGroup", () => { + it("Should return a specific group", async () => { + requestMocked.mockImplementationOnce(() => + Promise.resolve({ + groups: [ + { + id: "1", + depth: 20, + zeroValue: 0, + numberOfLeaves: 2, + root: "2", + admin: "0x7bcd6f009471e9974a77086a69289d16eadba286" + } + ] + }) + ) + + const expectedValue = await subgraph.getGroup("1") + + expect(expectedValue).toBeDefined() + expect(expectedValue).toEqual({ + id: "1", + depth: 20, + zeroValue: 0, + numberOfLeaves: 2, + root: "2", + admin: "0x7bcd6f009471e9974a77086a69289d16eadba286" + }) + }) + + it("Should throw an error if the options parameter type is wrong", async () => { + const fun = () => subgraph.getGroup("1", 1 as any) + + await expect(fun).rejects.toThrow("Parameter 'options' is not an object") + }) + + it("Should return a specific group with its members and signals", async () => { + requestMocked.mockImplementationOnce(() => + Promise.resolve({ + groups: [ + { + id: "1", + depth: 20, + zeroValue: 0, + numberOfLeaves: 2, + root: "2", + admin: "0x7bcd6f009471e9974a77086a69289d16eadba286", + members: [ + { + identityCommitment: "1" + }, + { + identityCommitment: "2" + } + ], + verifiedProofs: [ + { + signal: "0x3243b", + timestamp: "1657306917" + }, + { + signal: "0x5233a", + timestamp: "1657306923" + } + ] + } + ] + }) + ) + + const expectedValue = await subgraph.getGroup("1", { + members: true, + signals: true + }) + + expect(expectedValue).toBeDefined() + expect(expectedValue).toEqual({ + id: "1", + depth: 20, + zeroValue: 0, + numberOfLeaves: 2, + root: "2", + admin: "0x7bcd6f009471e9974a77086a69289d16eadba286", + members: ["1", "2"], + signals: ["0x3243b", "0x5233a"] + }) + }) + }) +}) diff --git a/packages/subgraph/src/subgraph.ts b/packages/subgraph/src/subgraph.ts new file mode 100644 index 000000000..e476637e2 --- /dev/null +++ b/packages/subgraph/src/subgraph.ts @@ -0,0 +1,149 @@ +import { AxiosRequestConfig } from "axios" +import checkParameter from "./checkParameter" +import getURL from "./getURL" +import request from "./request" +import { GroupOptions, Network } from "./types" + +export default class Subgraph { + private _url: string + + /** + * Initializes the subgraph object with one of the supported networks. + * @param network Supported Semaphore network. + */ + constructor(network: Network = "arbitrum") { + checkParameter(network, "network", "string") + + this._url = getURL(network) + } + + /** + * Returns the subgraph URL. + * @returns Subgraph URL. + */ + get url(): string { + return this._url + } + + /** + * Returns the list of groups. + * @param options Options to select the group parameters. + * @returns List of groups. + */ + async getGroups(options: GroupOptions = {}): Promise { + checkParameter(options, "options", "object") + + const { members = false, signals = false } = options + + checkParameter(members, "members", "boolean") + checkParameter(signals, "signals", "boolean") + + const config: AxiosRequestConfig = { + method: "post", + data: JSON.stringify({ + query: `{ + groups { + id + depth + zeroValue + root + numberOfLeaves + admin + ${ + members === true + ? `members(orderBy: index) { + identityCommitment + }` + : "" + } + ${ + signals === true + ? `verifiedProofs(orderBy: timestamp) { + signal + }` + : "" + } + } + }` + }) + } + + const { groups } = await request(this._url, config) + + if (members) { + for (const group of groups) { + group.members = group.members.map((member: any) => member.identityCommitment) + } + } + + if (signals) { + for (const group of groups) { + group.signals = group.verifiedProofs.map((verifiedProof: any) => verifiedProof.signal) + + delete group.verifiedProofs + } + } + + return groups + } + + /** + * Returns a specific group. + * @param groupId Group id. + * @param options Options to select the group parameters. + * @returns Specific group. + */ + async getGroup(groupId: string, options: GroupOptions = {}): Promise { + checkParameter(groupId, "groupId", "string") + checkParameter(options, "options", "object") + + const { members = false, signals = false } = options + + checkParameter(members, "members", "boolean") + checkParameter(signals, "signals", "boolean") + + const config: AxiosRequestConfig = { + method: "post", + data: JSON.stringify({ + query: `{ + groups(where: { id: "${groupId}" }) { + id + depth + zeroValue + root + numberOfLeaves + admin + ${ + members === true + ? `members(orderBy: index) { + identityCommitment + }` + : "" + } + ${ + signals === true + ? `verifiedProofs(orderBy: timestamp) { + signal + }` + : "" + } + } + }` + }) + } + + const { groups } = await request(this._url, config) + + if (members) { + groups[0].members = groups[0].members.map((member: any) => member.identityCommitment) + } + + if (signals) { + groups[0].signals = groups[0].verifiedProofs.map((verifiedProof: any) => verifiedProof.signal) + + delete groups[0].verifiedProofs + } + + return groups[0] + } +} diff --git a/packages/subgraph/src/types/index.ts b/packages/subgraph/src/types/index.ts new file mode 100644 index 000000000..9ae574cd6 --- /dev/null +++ b/packages/subgraph/src/types/index.ts @@ -0,0 +1,6 @@ +export type Network = "goerli" | "arbitrum" + +export type GroupOptions = { + members?: boolean + signals?: boolean +} diff --git a/packages/subgraph/tsconfig.json b/packages/subgraph/tsconfig.json new file mode 100644 index 000000000..dfaf0c1ad --- /dev/null +++ b/packages/subgraph/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.json", + "include": ["src", "rollup.config.ts"] +} diff --git a/tsconfig.json b/tsconfig.json index df842c612..7ffadd6d5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,15 +1,25 @@ { "compilerOptions": { - "moduleResolution": "Node", - "noImplicitAny": true, - "resolveJsonModule": true, - "target": "ES2018", - "module": "CommonJS", + "baseUrl": ".", "strict": true, + "target": "ES5", + "module": "ES6", + "moduleResolution": "node", "esModuleInterop": true, - "outDir": "dist", - "typeRoots": ["node_modules/@types", "types"] + "preserveConstEnums": true, + "skipLibCheck": true, + "declaration": true, + "allowSyntheticDefaultImports": true, + "declarationDir": "types", + "typeRoots": ["node_modules/@types", "types"], + "paths": { + "@semaphore-protocol/*": ["packages/*/src"] + } }, - "include": ["scripts/**/*", "tasks/**/*", "test/**/*", "build/typechain/**/*", "types/**/*"], - "files": ["hardhat.config.ts"] + "ts-node": { + "compilerOptions": { + "target": "esnext", + "module": "commonjs" + } + } } diff --git a/types/circomlibjs/index.d.ts b/types/circomlibjs/index.d.ts index 8353aeec4..143e7812d 100644 --- a/types/circomlibjs/index.d.ts +++ b/types/circomlibjs/index.d.ts @@ -1,895 +1,895 @@ /** Declaration file generated by dts-gen */ declare module "circomlibjs" { - export class evmasm { - constructor(...args: any[]) + export class evmasm { + constructor(...args: any[]) - add(...args: any[]): void + add(...args: any[]): void - addmod(...args: any[]): void + addmod(...args: any[]): void - address(...args: any[]): void + address(...args: any[]): void - and(...args: any[]): void + and(...args: any[]): void - balance(...args: any[]): void + balance(...args: any[]): void - blockhash(...args: any[]): void + blockhash(...args: any[]): void - byte(...args: any[]): void + byte(...args: any[]): void - call(...args: any[]): void + call(...args: any[]): void - callcode(...args: any[]): void + callcode(...args: any[]): void - calldatacopy(...args: any[]): void + calldatacopy(...args: any[]): void - calldataload(...args: any[]): void + calldataload(...args: any[]): void - calldatasize(...args: any[]): void + calldatasize(...args: any[]): void - caller(...args: any[]): void + caller(...args: any[]): void - callvalue(...args: any[]): void + callvalue(...args: any[]): void - codecopy(...args: any[]): void + codecopy(...args: any[]): void - codesize(...args: any[]): void + codesize(...args: any[]): void - coinbase(...args: any[]): void + coinbase(...args: any[]): void - create(...args: any[]): void + create(...args: any[]): void - createTxData(...args: any[]): void + createTxData(...args: any[]): void - delegatecall(...args: any[]): void + delegatecall(...args: any[]): void - difficulty(...args: any[]): void + difficulty(...args: any[]): void - div(...args: any[]): void + div(...args: any[]): void - dup(...args: any[]): void + dup(...args: any[]): void - eq(...args: any[]): void + eq(...args: any[]): void - exp(...args: any[]): void + exp(...args: any[]): void - extcodecopy(...args: any[]): void + extcodecopy(...args: any[]): void - extcodesize(...args: any[]): void + extcodesize(...args: any[]): void - gas(...args: any[]): void + gas(...args: any[]): void - gaslimit(...args: any[]): void + gaslimit(...args: any[]): void - gasprice(...args: any[]): void + gasprice(...args: any[]): void - gt(...args: any[]): void + gt(...args: any[]): void - invalid(...args: any[]): void + invalid(...args: any[]): void - iszero(...args: any[]): void + iszero(...args: any[]): void - jmp(...args: any[]): void + jmp(...args: any[]): void - jmpi(...args: any[]): void + jmpi(...args: any[]): void - keccak(...args: any[]): void + keccak(...args: any[]): void - label(...args: any[]): void + label(...args: any[]): void - log0(...args: any[]): void + log0(...args: any[]): void - log1(...args: any[]): void + log1(...args: any[]): void - log2(...args: any[]): void + log2(...args: any[]): void - log3(...args: any[]): void + log3(...args: any[]): void - log4(...args: any[]): void + log4(...args: any[]): void - lt(...args: any[]): void + lt(...args: any[]): void - mload(...args: any[]): void + mload(...args: any[]): void - mod(...args: any[]): void + mod(...args: any[]): void - msize(...args: any[]): void + msize(...args: any[]): void - mstore(...args: any[]): void + mstore(...args: any[]): void - mstore8(...args: any[]): void + mstore8(...args: any[]): void - mul(...args: any[]): void + mul(...args: any[]): void - mulmod(...args: any[]): void + mulmod(...args: any[]): void - not(...args: any[]): void + not(...args: any[]): void - number(...args: any[]): void + number(...args: any[]): void - or(...args: any[]): void + or(...args: any[]): void - origin(...args: any[]): void + origin(...args: any[]): void - pc(...args: any[]): void + pc(...args: any[]): void - pop(...args: any[]): void + pop(...args: any[]): void - push(...args: any[]): void + push(...args: any[]): void - return(...args: any[]): void + return(...args: any[]): void - returndatacopy(...args: any[]): void + returndatacopy(...args: any[]): void - returndatasize(...args: any[]): void + returndatasize(...args: any[]): void - revert(...args: any[]): void + revert(...args: any[]): void - sdiv(...args: any[]): void + sdiv(...args: any[]): void - selfdestruct(...args: any[]): void + selfdestruct(...args: any[]): void - sgt(...args: any[]): void + sgt(...args: any[]): void - sha3(...args: any[]): void + sha3(...args: any[]): void - shor(...args: any[]): void + shor(...args: any[]): void - signextend(...args: any[]): void + signextend(...args: any[]): void - sload(...args: any[]): void + sload(...args: any[]): void - slt(...args: any[]): void + slt(...args: any[]): void - smod(...args: any[]): void + smod(...args: any[]): void - sstore(...args: any[]): void + sstore(...args: any[]): void - staticcall(...args: any[]): void + staticcall(...args: any[]): void - stop(...args: any[]): void + stop(...args: any[]): void - sub(...args: any[]): void + sub(...args: any[]): void - swap(...args: any[]): void + swap(...args: any[]): void - timestamp(...args: any[]): void - } + timestamp(...args: any[]): void + } - export class smt_memdb { - constructor(...args: any[]) + export class smt_memdb { + constructor(...args: any[]) - get(...args: any[]): void + get(...args: any[]): void - getRoot(...args: any[]): void + getRoot(...args: any[]): void - multiDel(...args: any[]): void + multiDel(...args: any[]): void - multiGet(...args: any[]): void + multiGet(...args: any[]): void - multiIns(...args: any[]): void + multiIns(...args: any[]): void - setRoot(...args: any[]): void - } + setRoot(...args: any[]): void + } - export function poseidon(inputs: any): any + export function poseidon(inputs: any): any - export function poseidon_slow(inputs: any): any + export function poseidon_slow(inputs: any): any - export namespace babyjub { - const A: any + export namespace babyjub { + const A: any - const Base8: any[] + const Base8: any[] - const D: any + const D: any - const Generator: any[] + const Generator: any[] - const order: any + const order: any - const p: any + const p: any - const subOrder: any + const subOrder: any - function addPoint(a: any, b: any): any + function addPoint(a: any, b: any): any - function inCurve(P: any): any + function inCurve(P: any): any - function inSubgroup(P: any): any + function inSubgroup(P: any): any - function mulPointEscalar(base: any, e: any): any + function mulPointEscalar(base: any, e: any): any - function packPoint(P: any): any + function packPoint(P: any): any - function unpackPoint(_buff: any): any + function unpackPoint(_buff: any): any - namespace F { - const R: any + namespace F { + const R: any - const Ri: any + const Ri: any - const bitLength: number + const bitLength: number - const half: any + const half: any - const m: number + const m: number - const mask: any + const mask: any - const n32: number + const n32: number - const n64: number + const n64: number - const n8: number + const n8: number - const negone: any + const negone: any - const nqr: any + const nqr: any - const nqr_to_t: any + const nqr_to_t: any - const one: any + const one: any - const p: any + const p: any - const s: number + const s: number - const sqrt_q: any + const sqrt_q: any - const sqrt_s: number + const sqrt_s: number - const sqrt_t: any + const sqrt_t: any - const sqrt_tm1d2: any + const sqrt_tm1d2: any - const sqrt_z: any + const sqrt_z: any - const t: any + const t: any - const two: any + const two: any - const type: string + const type: string - const zero: any + const zero: any - function add(...args: any[]): void + function add(...args: any[]): void - function band(...args: any[]): void + function band(...args: any[]): void - function bnot(...args: any[]): void + function bnot(...args: any[]): void - function bor(...args: any[]): void + function bor(...args: any[]): void - function bxor(...args: any[]): void + function bxor(...args: any[]): void - function div(...args: any[]): void + function div(...args: any[]): void - function e(...args: any[]): void + function e(...args: any[]): void - function eq(...args: any[]): void + function eq(...args: any[]): void - function exp(...args: any[]): void + function exp(...args: any[]): void - function fromRng(...args: any[]): void + function fromRng(...args: any[]): void - function fromRprBE(...args: any[]): void + function fromRprBE(...args: any[]): void - function fromRprBEM(...args: any[]): void + function fromRprBEM(...args: any[]): void - function fromRprLE(...args: any[]): void + function fromRprLE(...args: any[]): void - function fromRprLEM(...args: any[]): void + function fromRprLEM(...args: any[]): void - function geq(...args: any[]): void + function geq(...args: any[]): void - function gt(...args: any[]): void + function gt(...args: any[]): void - function idiv(...args: any[]): void + function idiv(...args: any[]): void - function inv(...args: any[]): void + function inv(...args: any[]): void - function isZero(...args: any[]): void + function isZero(...args: any[]): void - function land(...args: any[]): void + function land(...args: any[]): void - function leq(...args: any[]): void + function leq(...args: any[]): void - function lnot(...args: any[]): void + function lnot(...args: any[]): void - function lor(...args: any[]): void + function lor(...args: any[]): void - function lt(...args: any[]): void + function lt(...args: any[]): void - function mod(...args: any[]): void + function mod(...args: any[]): void - function mul(...args: any[]): void + function mul(...args: any[]): void - function mulScalar(...args: any[]): void + function mulScalar(...args: any[]): void - function neg(...args: any[]): void + function neg(...args: any[]): void - function neq(...args: any[]): void + function neq(...args: any[]): void - function normalize(...args: any[]): void + function normalize(...args: any[]): void - function pow(...args: any[]): void + function pow(...args: any[]): void - function random(...args: any[]): void + function random(...args: any[]): void - function shl(...args: any[]): void + function shl(...args: any[]): void - function shr(...args: any[]): void + function shr(...args: any[]): void - function sqrt(a: any): any + function sqrt(a: any): any - function sqrt_old(...args: any[]): void + function sqrt_old(...args: any[]): void - function square(...args: any[]): void + function square(...args: any[]): void - function sub(...args: any[]): void + function sub(...args: any[]): void - function toRprBE(...args: any[]): void + function toRprBE(...args: any[]): void - function toRprBEM(...args: any[]): void + function toRprBEM(...args: any[]): void - function toRprLE(...args: any[]): void + function toRprLE(...args: any[]): void - function toRprLEM(...args: any[]): void + function toRprLEM(...args: any[]): void - function toString(...args: any[]): void + function toString(...args: any[]): void + } } - } - export namespace eddsa { - function packSignature(sig: any): any + export namespace eddsa { + function packSignature(sig: any): any - function pruneBuffer(_buff: any): any + function pruneBuffer(_buff: any): any - function prv2pub(prv: any): any + function prv2pub(prv: any): any - function sign(prv: any, msg: any): any + function sign(prv: any, msg: any): any - function signMiMC(prv: any, msg: any): any + function signMiMC(prv: any, msg: any): any - function signMiMCSponge(prv: any, msg: any): any + function signMiMCSponge(prv: any, msg: any): any - function signPoseidon(prv: any, msg: any): any + function signPoseidon(prv: any, msg: any): any - function unpackSignature(sigBuff: any): any + function unpackSignature(sigBuff: any): any - function verify(msg: any, sig: any, A: any): any + function verify(msg: any, sig: any, A: any): any - function verifyMiMC(msg: any, sig: any, A: any): any + function verifyMiMC(msg: any, sig: any, A: any): any - function verifyMiMCSponge(msg: any, sig: any, A: any): any + function verifyMiMCSponge(msg: any, sig: any, A: any): any - function verifyPoseidon(msg: any, sig: any, A: any): any - } + function verifyPoseidon(msg: any, sig: any, A: any): any + } - export namespace mimc7 { - function getConstants(seed: any, nRounds: any): any + export namespace mimc7 { + function getConstants(seed: any, nRounds: any): any - function getIV(seed: any): any + function getIV(seed: any): any - function hash(_x_in: any, _k: any): any + function hash(_x_in: any, _k: any): any - function multiHash(arr: any, key: any): any + function multiHash(arr: any, key: any): any - namespace F { - const R: any + namespace F { + const R: any - const Ri: any + const Ri: any - const bitLength: number + const bitLength: number - const half: any + const half: any - const m: number + const m: number - const mask: any + const mask: any - const n32: number + const n32: number - const n64: number + const n64: number - const n8: number + const n8: number - const negone: any + const negone: any - const nqr: any + const nqr: any - const nqr_to_t: any + const nqr_to_t: any - const one: any + const one: any - const p: any + const p: any - const s: number + const s: number - const sqrt_q: any + const sqrt_q: any - const sqrt_s: number + const sqrt_s: number - const sqrt_t: any + const sqrt_t: any - const sqrt_tm1d2: any + const sqrt_tm1d2: any - const sqrt_z: any + const sqrt_z: any - const t: any + const t: any - const two: any + const two: any - const type: string + const type: string - const zero: any + const zero: any - function add(...args: any[]): void + function add(...args: any[]): void - function band(...args: any[]): void + function band(...args: any[]): void - function bnot(...args: any[]): void + function bnot(...args: any[]): void - function bor(...args: any[]): void + function bor(...args: any[]): void - function bxor(...args: any[]): void + function bxor(...args: any[]): void - function div(...args: any[]): void + function div(...args: any[]): void - function e(...args: any[]): void + function e(...args: any[]): void - function eq(...args: any[]): void + function eq(...args: any[]): void - function exp(...args: any[]): void + function exp(...args: any[]): void - function fromRng(...args: any[]): void + function fromRng(...args: any[]): void - function fromRprBE(...args: any[]): void + function fromRprBE(...args: any[]): void - function fromRprBEM(...args: any[]): void + function fromRprBEM(...args: any[]): void - function fromRprLE(...args: any[]): void + function fromRprLE(...args: any[]): void - function fromRprLEM(...args: any[]): void + function fromRprLEM(...args: any[]): void - function geq(...args: any[]): void + function geq(...args: any[]): void - function gt(...args: any[]): void + function gt(...args: any[]): void - function idiv(...args: any[]): void + function idiv(...args: any[]): void - function inv(...args: any[]): void + function inv(...args: any[]): void - function isZero(...args: any[]): void + function isZero(...args: any[]): void - function land(...args: any[]): void + function land(...args: any[]): void - function leq(...args: any[]): void + function leq(...args: any[]): void - function lnot(...args: any[]): void + function lnot(...args: any[]): void - function lor(...args: any[]): void + function lor(...args: any[]): void - function lt(...args: any[]): void + function lt(...args: any[]): void - function mod(...args: any[]): void + function mod(...args: any[]): void - function mul(...args: any[]): void + function mul(...args: any[]): void - function mulScalar(...args: any[]): void + function mulScalar(...args: any[]): void - function neg(...args: any[]): void + function neg(...args: any[]): void - function neq(...args: any[]): void + function neq(...args: any[]): void - function normalize(...args: any[]): void + function normalize(...args: any[]): void - function pow(...args: any[]): void + function pow(...args: any[]): void - function random(...args: any[]): void + function random(...args: any[]): void - function shl(...args: any[]): void + function shl(...args: any[]): void - function shr(...args: any[]): void + function shr(...args: any[]): void - function sqrt(a: any): any + function sqrt(a: any): any - function sqrt_old(...args: any[]): void + function sqrt_old(...args: any[]): void - function square(...args: any[]): void + function square(...args: any[]): void - function sub(...args: any[]): void + function sub(...args: any[]): void - function toRprBE(...args: any[]): void + function toRprBE(...args: any[]): void - function toRprBEM(...args: any[]): void + function toRprBEM(...args: any[]): void - function toRprLE(...args: any[]): void + function toRprLE(...args: any[]): void - function toRprLEM(...args: any[]): void + function toRprLEM(...args: any[]): void - function toString(...args: any[]): void + function toString(...args: any[]): void + } } - } - - export namespace mimc_gencontract { - const abi: { - constant: boolean - inputs: { - name: string - type: string - }[] - name: string - outputs: { - name: string - type: string - }[] - payable: boolean - stateMutability: string - type: string - }[] - - function createCode(seed: any, n: any): any - } - - export namespace mimcsponge { - function getConstants(seed: any, nRounds: any): any - - function getIV(seed: any): any - - function hash(_xL_in: any, _xR_in: any, _k: any): any - - function multiHash(arr: any, key: any, numOutputs: any): any - } - - export namespace mimcsponge_gencontract { - const abi: { - constant: boolean - inputs: { - name: string - type: string - }[] - name: string - outputs: { - name: string - type: string - }[] - payable: boolean - stateMutability: string - type: string - }[] - - function createCode(seed: any, n: any): any - } - - export namespace pedersenHash { - function getBasePoint(baseHashType: any, pointIdx: any): any - - function hash(msg: any, options: any): any - } - - export namespace poseidon_gencontract { - function createCode(nInputs: any): any - - function generateABI(nInputs: any): any - } - - export namespace smt { - class SMT { - constructor(...args: any[]) - - delete(...args: any[]): void - - find(...args: any[]): void - - insert(...args: any[]): void - - update(...args: any[]): void + + export namespace mimc_gencontract { + const abi: { + constant: boolean + inputs: { + name: string + type: string + }[] + name: string + outputs: { + name: string + type: string + }[] + payable: boolean + stateMutability: string + type: string + }[] + + function createCode(seed: any, n: any): any } - class SMTMemDB { - constructor(...args: any[]) + export namespace mimcsponge { + function getConstants(seed: any, nRounds: any): any - get(...args: any[]): void + function getIV(seed: any): any - getRoot(...args: any[]): void + function hash(_xL_in: any, _xR_in: any, _k: any): any - multiDel(...args: any[]): void + function multiHash(arr: any, key: any, numOutputs: any): any + } - multiGet(...args: any[]): void + export namespace mimcsponge_gencontract { + const abi: { + constant: boolean + inputs: { + name: string + type: string + }[] + name: string + outputs: { + name: string + type: string + }[] + payable: boolean + stateMutability: string + type: string + }[] + + function createCode(seed: any, n: any): any + } - multiIns(...args: any[]): void + export namespace pedersenHash { + function getBasePoint(baseHashType: any, pointIdx: any): any - setRoot(...args: any[]): void + function hash(msg: any, options: any): any } - function loadFromFile(fileName: any): void + export namespace poseidon_gencontract { + function createCode(nInputs: any): any + + function generateABI(nInputs: any): any + } + + export namespace smt { + class SMT { + constructor(...args: any[]) + + delete(...args: any[]): void + + find(...args: any[]): void - function newMemEmptyTrie(): any - } + insert(...args: any[]): void + + update(...args: any[]): void + } + + class SMTMemDB { + constructor(...args: any[]) + + get(...args: any[]): void + + getRoot(...args: any[]): void + + multiDel(...args: any[]): void + + multiGet(...args: any[]): void + + multiIns(...args: any[]): void + + setRoot(...args: any[]): void + } + + function loadFromFile(fileName: any): void + + function newMemEmptyTrie(): any + } - export namespace smt_hashes_mimc { - function hash0(left: any, right: any): any + export namespace smt_hashes_mimc { + function hash0(left: any, right: any): any - function hash1(key: any, value: any): any + function hash1(key: any, value: any): any - namespace F { - const R: any + namespace F { + const R: any - const Ri: any + const Ri: any - const bitLength: number + const bitLength: number - const half: any + const half: any - const m: number + const m: number - const mask: any + const mask: any - const n32: number + const n32: number - const n64: number + const n64: number - const n8: number + const n8: number - const negone: any + const negone: any - const nqr: any + const nqr: any - const nqr_to_t: any + const nqr_to_t: any - const one: any + const one: any - const p: any + const p: any - const s: number + const s: number - const sqrt_q: any + const sqrt_q: any - const sqrt_s: number + const sqrt_s: number - const sqrt_t: any + const sqrt_t: any - const sqrt_tm1d2: any + const sqrt_tm1d2: any - const sqrt_z: any + const sqrt_z: any - const t: any + const t: any - const two: any + const two: any - const type: string + const type: string - const zero: any + const zero: any - function add(...args: any[]): void + function add(...args: any[]): void - function band(...args: any[]): void + function band(...args: any[]): void - function bnot(...args: any[]): void + function bnot(...args: any[]): void - function bor(...args: any[]): void + function bor(...args: any[]): void - function bxor(...args: any[]): void + function bxor(...args: any[]): void - function div(...args: any[]): void + function div(...args: any[]): void - function e(...args: any[]): void + function e(...args: any[]): void - function eq(...args: any[]): void + function eq(...args: any[]): void - function exp(...args: any[]): void + function exp(...args: any[]): void - function fromRng(...args: any[]): void + function fromRng(...args: any[]): void - function fromRprBE(...args: any[]): void + function fromRprBE(...args: any[]): void - function fromRprBEM(...args: any[]): void + function fromRprBEM(...args: any[]): void - function fromRprLE(...args: any[]): void + function fromRprLE(...args: any[]): void - function fromRprLEM(...args: any[]): void + function fromRprLEM(...args: any[]): void - function geq(...args: any[]): void + function geq(...args: any[]): void - function gt(...args: any[]): void + function gt(...args: any[]): void - function idiv(...args: any[]): void + function idiv(...args: any[]): void - function inv(...args: any[]): void + function inv(...args: any[]): void - function isZero(...args: any[]): void + function isZero(...args: any[]): void - function land(...args: any[]): void + function land(...args: any[]): void - function leq(...args: any[]): void + function leq(...args: any[]): void - function lnot(...args: any[]): void + function lnot(...args: any[]): void - function lor(...args: any[]): void + function lor(...args: any[]): void - function lt(...args: any[]): void + function lt(...args: any[]): void - function mod(...args: any[]): void + function mod(...args: any[]): void - function mul(...args: any[]): void + function mul(...args: any[]): void - function mulScalar(...args: any[]): void + function mulScalar(...args: any[]): void - function neg(...args: any[]): void + function neg(...args: any[]): void - function neq(...args: any[]): void + function neq(...args: any[]): void - function normalize(...args: any[]): void + function normalize(...args: any[]): void - function pow(...args: any[]): void + function pow(...args: any[]): void - function random(...args: any[]): void + function random(...args: any[]): void - function shl(...args: any[]): void + function shl(...args: any[]): void - function shr(...args: any[]): void + function shr(...args: any[]): void - function sqrt(a: any): any + function sqrt(a: any): any - function sqrt_old(...args: any[]): void + function sqrt_old(...args: any[]): void - function square(...args: any[]): void + function square(...args: any[]): void - function sub(...args: any[]): void + function sub(...args: any[]): void - function toRprBE(...args: any[]): void + function toRprBE(...args: any[]): void - function toRprBEM(...args: any[]): void + function toRprBEM(...args: any[]): void - function toRprLE(...args: any[]): void + function toRprLE(...args: any[]): void - function toRprLEM(...args: any[]): void + function toRprLEM(...args: any[]): void - function toString(...args: any[]): void + function toString(...args: any[]): void + } } - } - export namespace smt_hashes_poseidon { - function hash0(left: any, right: any): any + export namespace smt_hashes_poseidon { + function hash0(left: any, right: any): any - function hash1(key: any, value: any): any + function hash1(key: any, value: any): any - namespace F { - const R: any + namespace F { + const R: any - const Ri: any + const Ri: any - const bitLength: number + const bitLength: number - const half: any + const half: any - const m: number + const m: number - const mask: any + const mask: any - const n32: number + const n32: number - const n64: number + const n64: number - const n8: number + const n8: number - const negone: any + const negone: any - const nqr: any + const nqr: any - const nqr_to_t: any + const nqr_to_t: any - const one: any + const one: any - const p: any + const p: any - const s: number + const s: number - const sqrt_q: any + const sqrt_q: any - const sqrt_s: number + const sqrt_s: number - const sqrt_t: any + const sqrt_t: any - const sqrt_tm1d2: any + const sqrt_tm1d2: any - const sqrt_z: any + const sqrt_z: any - const t: any + const t: any - const two: any + const two: any - const type: string + const type: string - const zero: any + const zero: any - function add(...args: any[]): void + function add(...args: any[]): void - function band(...args: any[]): void + function band(...args: any[]): void - function bnot(...args: any[]): void + function bnot(...args: any[]): void - function bor(...args: any[]): void + function bor(...args: any[]): void - function bxor(...args: any[]): void + function bxor(...args: any[]): void - function div(...args: any[]): void + function div(...args: any[]): void - function e(...args: any[]): void + function e(...args: any[]): void - function eq(...args: any[]): void + function eq(...args: any[]): void - function exp(...args: any[]): void + function exp(...args: any[]): void - function fromRng(...args: any[]): void + function fromRng(...args: any[]): void - function fromRprBE(...args: any[]): void + function fromRprBE(...args: any[]): void - function fromRprBEM(...args: any[]): void + function fromRprBEM(...args: any[]): void - function fromRprLE(...args: any[]): void + function fromRprLE(...args: any[]): void - function fromRprLEM(...args: any[]): void + function fromRprLEM(...args: any[]): void - function geq(...args: any[]): void + function geq(...args: any[]): void - function gt(...args: any[]): void + function gt(...args: any[]): void - function idiv(...args: any[]): void + function idiv(...args: any[]): void - function inv(...args: any[]): void + function inv(...args: any[]): void - function isZero(...args: any[]): void + function isZero(...args: any[]): void - function land(...args: any[]): void + function land(...args: any[]): void - function leq(...args: any[]): void + function leq(...args: any[]): void - function lnot(...args: any[]): void + function lnot(...args: any[]): void - function lor(...args: any[]): void + function lor(...args: any[]): void - function lt(...args: any[]): void + function lt(...args: any[]): void - function mod(...args: any[]): void + function mod(...args: any[]): void - function mul(...args: any[]): void + function mul(...args: any[]): void - function mulScalar(...args: any[]): void + function mulScalar(...args: any[]): void - function neg(...args: any[]): void + function neg(...args: any[]): void - function neq(...args: any[]): void + function neq(...args: any[]): void - function normalize(...args: any[]): void + function normalize(...args: any[]): void - function pow(...args: any[]): void + function pow(...args: any[]): void - function random(...args: any[]): void + function random(...args: any[]): void - function shl(...args: any[]): void + function shl(...args: any[]): void - function shr(...args: any[]): void + function shr(...args: any[]): void - function sqrt(a: any): any + function sqrt(a: any): any - function sqrt_old(...args: any[]): void + function sqrt_old(...args: any[]): void - function square(...args: any[]): void + function square(...args: any[]): void - function sub(...args: any[]): void + function sub(...args: any[]): void - function toRprBE(...args: any[]): void + function toRprBE(...args: any[]): void - function toRprBEM(...args: any[]): void + function toRprBEM(...args: any[]): void - function toRprLE(...args: any[]): void + function toRprLE(...args: any[]): void - function toRprLEM(...args: any[]): void + function toRprLEM(...args: any[]): void - function toString(...args: any[]): void + function toString(...args: any[]): void + } } - } } diff --git a/types/ffjavascript/index.d.ts b/types/ffjavascript/index.d.ts new file mode 100644 index 000000000..f754ad716 --- /dev/null +++ b/types/ffjavascript/index.d.ts @@ -0,0 +1,509 @@ +/** Declaration file generated by dts-gen */ + +declare module "ffjavascript" { + export class BigBuffer { + constructor(...args: any[]) + + set(...args: any[]): void + + slice(...args: any[]): void + } + + export class ChaCha { + constructor(...args: any[]) + + nextBool(...args: any[]): void + + nextU32(...args: any[]): void + + nextU64(...args: any[]): void + + update(...args: any[]): void + } + + export class EC { + constructor(...args: any[]) + + add(...args: any[]): void + + affine(...args: any[]): void + + double(...args: any[]): void + + eq(...args: any[]): void + + fromRng(...args: any[]): void + + fromRprBE(...args: any[]): void + + fromRprBEM(...args: any[]): void + + fromRprCompressed(...args: any[]): void + + fromRprLE(...args: any[]): void + + fromRprLEJM(...args: any[]): void + + fromRprLEM(...args: any[]): void + + fromRprUncompressed(...args: any[]): void + + isZero(...args: any[]): void + + mulScalar(...args: any[]): void + + multiAffine(...args: any[]): void + + neg(...args: any[]): void + + sub(...args: any[]): void + + timesScalar(...args: any[]): void + + toRprBE(...args: any[]): void + + toRprBEM(...args: any[]): void + + toRprCompressed(...args: any[]): void + + toRprLE(...args: any[]): void + + toRprLEJM(...args: any[]): void + + toRprLEM(...args: any[]): void + + toRprUncompressed(...args: any[]): void + + toString(...args: any[]): void + } + + export class F1Field { + constructor(...args: any[]) + + e(...args: any[]): any + add(...args: any[]): any + sub(...args: any[]): any + neg(...args: any[]): any + mul(...args: any[]): any + mulScalar(...args: any[]): any + square(...args: any[]): any + eq(...args: any[]): any + neq(...args: any[]): any + lt(...args: any[]): any + gt(...args: any[]): any + leq(...args: any[]): any + geq(...args: any[]): any + div(...args: any[]): any + idiv(...args: any[]): any + inv(...args: any[]): any + mod(...args: any[]): any + pow(...args: any[]): any + exp(...args: any[]): any + band(...args: any[]): any + bor(...args: any[]): any + bxor(...args: any[]): any + bnot(...args: any[]): any + shl(...args: any[]): any + shr(...args: any[]): any + land(...args: any[]): any + lor(...args: any[]): any + lnot(...args: any[]): any + sqrt_old(...args: any[]): any + normalize(...args: any[]): any + random(...args: any[]): any + toString(...args: any[]): any + isZero(...args: any[]): any + fromRng(...args: any[]): any + + fromRprBE(...args: any[]): void + + fromRprBEM(...args: any[]): void + + fromRprLE(...args: any[]): void + + fromRprLEM(...args: any[]): void + + toRprBE(...args: any[]): void + + toRprBEM(...args: any[]): void + + toRprLE(...args: any[]): void + + toRprLEM(...args: any[]): void + } + + export class F2Field { + constructor(...args: any[]) + + add(...args: any[]): void + + conjugate(...args: any[]): void + + copy(...args: any[]): void + + div(...args: any[]): void + + double(...args: any[]): void + + eq(...args: any[]): void + + exp(...args: any[]): void + + fromRng(...args: any[]): void + + fromRprBE(...args: any[]): void + + fromRprBEM(...args: any[]): void + + fromRprLE(...args: any[]): void + + fromRprLEM(...args: any[]): void + + geq(...args: any[]): void + + gt(...args: any[]): void + + inv(...args: any[]): void + + isZero(...args: any[]): void + + leq(...args: any[]): void + + lt(...args: any[]): void + + mul(...args: any[]): void + + mulScalar(...args: any[]): void + + neg(...args: any[]): void + + neq(...args: any[]): void + + pow(...args: any[]): void + + random(...args: any[]): void + + square(...args: any[]): void + + sub(...args: any[]): void + + toRprBE(...args: any[]): void + + toRprBEM(...args: any[]): void + + toRprLE(...args: any[]): void + + toRprLEM(...args: any[]): void + + toString(...args: any[]): void + } + + export class F3Field { + constructor(...args: any[]) + + add(...args: any[]): void + + affine(...args: any[]): void + + copy(...args: any[]): void + + div(...args: any[]): void + + double(...args: any[]): void + + eq(...args: any[]): void + + exp(...args: any[]): void + + fromRng(...args: any[]): void + + fromRprBE(...args: any[]): void + + fromRprBEM(...args: any[]): void + + fromRprLE(...args: any[]): void + + fromRprLEM(...args: any[]): void + + geq(...args: any[]): void + + gt(...args: any[]): void + + inv(...args: any[]): void + + isZero(...args: any[]): void + + leq(...args: any[]): void + + lt(...args: any[]): void + + mul(...args: any[]): void + + mulScalar(...args: any[]): void + + neg(...args: any[]): void + + neq(...args: any[]): void + + pow(...args: any[]): void + + random(...args: any[]): void + + square(...args: any[]): void + + sub(...args: any[]): void + + toRprBE(...args: any[]): void + + toRprBEM(...args: any[]): void + + toRprLE(...args: any[]): void + + toRprLEM(...args: any[]): void + + toString(...args: any[]): void + } + + export class PolField { + constructor(...args: any[]) + + add(...args: any[]): void + + computeVanishingPolinomial(...args: any[]): void + + div(...args: any[]): void + + double(...args: any[]): void + + eq(...args: any[]): void + + eval(...args: any[]): void + + eval2(...args: any[]): void + + evaluateLagrangePolynomials(...args: any[]): void + + extend(...args: any[]): void + + fft(...args: any[]): void + + fft2(...args: any[]): void + + ifft(...args: any[]): void + + ifft2(...args: any[]): void + + lagrange(...args: any[]): void + + log2(...args: any[]): void + + mul(...args: any[]): void + + mulFFT(...args: any[]): void + + mulNormal(...args: any[]): void + + mulScalar(...args: any[]): void + + normalize(...args: any[]): void + + oneRoot(...args: any[]): void + + reduce(...args: any[]): void + + ruffini(...args: any[]): void + + scaleX(...args: any[]): void + + square(...args: any[]): void + + sub(...args: any[]): void + + toString(...args: any[]): void + } + + export class ZqField { + constructor(...args: any[]) + + e(...args: any[]): any + add(...args: any[]): any + sub(...args: any[]): any + neg(...args: any[]): any + mul(...args: any[]): any + mulScalar(...args: any[]): any + square(...args: any[]): any + eq(...args: any[]): any + neq(...args: any[]): any + lt(...args: any[]): any + gt(...args: any[]): any + leq(...args: any[]): any + geq(...args: any[]): any + div(...args: any[]): any + idiv(...args: any[]): any + inv(...args: any[]): any + mod(...args: any[]): any + pow(...args: any[]): any + exp(...args: any[]): any + band(...args: any[]): any + bor(...args: any[]): any + bxor(...args: any[]): any + bnot(...args: any[]): any + shl(...args: any[]): any + shr(...args: any[]): any + land(...args: any[]): any + lor(...args: any[]): any + lnot(...args: any[]): any + sqrt_old(...args: any[]): any + normalize(...args: any[]): any + random(...args: any[]): any + toString(...args: any[]): any + isZero(...args: any[]): any + fromRng(...args: any[]): any + + fromRprBE(...args: any[]): void + + fromRprBEM(...args: any[]): void + + fromRprLE(...args: any[]): void + + fromRprLEM(...args: any[]): void + + toRprBE(...args: any[]): void + + toRprBEM(...args: any[]): void + + toRprLE(...args: any[]): void + + toRprLEM(...args: any[]): void + } + + export function buildBls12381(singleThread: any, plugins: any): any + + export function buildBn128(singleThread: any, plugins: any): any + + export function getCurveFromName(name: any, singleThread?: any, plugins?: any): any + + export function getCurveFromQ(q: any, singleThread: any, plugins: any): any + + export function getCurveFromR(r: any, singleThread: any, plugins: any): any + + export namespace Scalar { + const one: any + + const zero: any + + function abs(a: any): any + + function add(a: any, b: any): any + + function band(a: any, b: any): any + + function bitLength(a: any): any + + function bits(n: any): any + + function bor(a: any, b: any): any + + function bxor(a: any, b: any): any + + function div(a: any, b: any): any + + function e(s: any, radix: any): any + + function eq(a: any, b: any): any + + function exp(a: any, b: any): any + + function fromArray(a: any, radix: any): any + + function fromRprBE(buff: any, o: any, n8: any): any + + function fromRprLE(buff: any, o: any, n8: any): any + + function fromString(s: any, radix: any): any + + function geq(a: any, b: any): any + + function gt(a: any, b: any): any + + function isNegative(a: any): any + + function isOdd(a: any): any + + function isZero(a: any): any + + function land(a: any, b: any): any + + function leq(a: any, b: any): any + + function lnot(a: any): any + + function lor(a: any, b: any): any + + function lt(a: any, b: any): any + + function mod(a: any, b: any): any + + function mul(a: any, b: any): any + + function naf(n: any): any + + function neg(a: any): any + + function neq(a: any, b: any): any + + function pow(a: any, b: any): any + + function shiftLeft(a: any, n: any): any + + function shiftRight(a: any, n: any): any + + function shl(a: any, n: any): any + + function shr(a: any, n: any): any + + function square(a: any): any + + function sub(a: any, b: any): any + + function toArray(s: any, radix: any): any + + function toLEBuff(a: any): any + + function toNumber(s: any): any + + function toRprBE(buff: any, o: any, e: any, n8: any): void + + function toRprLE(buff: any, o: any, e: any, n8: any): void + + function toString(a: any, radix: any): any + } + + export namespace utils { + function array2buffer(arr: any, sG: any): any + + function beBuff2int(buff: any): any + + function beInt2Buff(n: any, len: any): any + + function bitReverse(idx: any, bits: any): any + + function buffReverseBits(buff: any, eSize: any): void + + function buffer2array(buff: any, sG: any): any + + function leBuff2int(buff: any): any + + function leInt2Buff(n: any, len: any): any + + function log2(V: any): any + + function stringifyBigInts(o: any): any + + function stringifyFElements(F: any, o: any): any + + function unstringifyBigInts(o: any): any + + function unstringifyFElements(F: any, o: any): any + } +} diff --git a/types/snarkjs/index.d.ts b/types/snarkjs/index.d.ts index 07725a88c..7d118e2d9 100644 --- a/types/snarkjs/index.d.ts +++ b/types/snarkjs/index.d.ts @@ -1,57 +1,57 @@ /** Declaration file generated by dts-gen */ declare module "snarkjs" { - export = snarkjs + export = snarkjs - const snarkjs: { - groth16: { - exportSolidityCallData: any - fullProve: any - prove: any - verify: any + declare const snarkjs: { + groth16: { + exportSolidityCallData: any + fullProve: any + prove: any + verify: any + } + plonk: { + exportSolidityCallData: any + fullProve: any + prove: any + setup: any + verify: any + } + powersOfTau: { + beacon: any + challengeContribute: any + contribute: any + convert: any + exportChallenge: any + exportJson: any + importResponse: any + newAccumulator: any + preparePhase2: any + truncate: any + verify: any + } + r1cs: { + exportJson: any + info: any + print: any + } + wtns: { + calculate: any + debug: any + exportJson: any + } + zKey: { + beacon: any + bellmanContribute: any + contribute: any + exportBellman: any + exportJson: any + exportSolidityVerifier: any + exportVerificationKey: any + importBellman: any + newZKey: any + verifyFromInit: any + verifyFromR1cs: any + } } - plonk: { - exportSolidityCallData: any - fullProve: any - prove: any - setup: any - verify: any - } - powersOfTau: { - beacon: any - challengeContribute: any - contribute: any - convert: any - exportChallenge: any - exportJson: any - importResponse: any - newAccumulator: any - preparePhase2: any - truncate: any - verify: any - } - r1cs: { - exportJson: any - info: any - print: any - } - wtns: { - calculate: any - debug: any - exportJson: any - } - zKey: { - beacon: any - bellmanContribute: any - contribute: any - exportBellman: any - exportJson: any - exportSolidityVerifier: any - exportVerificationKey: any - importBellman: any - newZKey: any - verifyFromInit: any - verifyFromR1cs: any - } - } } diff --git a/yarn.lock b/yarn.lock index cfd9fda4e..efce87a48 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,34 +5,1322 @@ __metadata: version: 6 cacheKey: 8 -"@babel/code-frame@npm:^7.0.0": +"@ampproject/remapping@npm:^2.1.0": + version: 2.2.0 + resolution: "@ampproject/remapping@npm:2.2.0" + dependencies: + "@jridgewell/gen-mapping": ^0.1.0 + "@jridgewell/trace-mapping": ^0.3.9 + checksum: d74d170d06468913921d72430259424b7e4c826b5a7d39ff839a29d547efb97dc577caa8ba3fb5cf023624e9af9d09651afc3d4112a45e2050328abc9b3a2292 + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/code-frame@npm:7.18.6" + dependencies: + "@babel/highlight": ^7.18.6 + checksum: 195e2be3172d7684bf95cff69ae3b7a15a9841ea9d27d3c843662d50cdd7d6470fd9c8e64be84d031117e4a4083486effba39f9aef6bbb2c89f7f21bcfba33ba + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.18.8, @babel/compat-data@npm:^7.19.1": + version: 7.19.1 + resolution: "@babel/compat-data@npm:7.19.1" + checksum: f985887ea08a140e4af87a94d3fb17af0345491eb97f5a85b1840255c2e2a97429f32a8fd12a7aae9218af5f1024f1eb12a5cd280d2d69b2337583c17ea506ba + languageName: node + linkType: hard + +"@babel/core@npm:^7.1.0, @babel/core@npm:^7.12.3, @babel/core@npm:^7.16.7, @babel/core@npm:^7.7.2, @babel/core@npm:^7.8.0": + version: 7.19.1 + resolution: "@babel/core@npm:7.19.1" + dependencies: + "@ampproject/remapping": ^2.1.0 + "@babel/code-frame": ^7.18.6 + "@babel/generator": ^7.19.0 + "@babel/helper-compilation-targets": ^7.19.1 + "@babel/helper-module-transforms": ^7.19.0 + "@babel/helpers": ^7.19.0 + "@babel/parser": ^7.19.1 + "@babel/template": ^7.18.10 + "@babel/traverse": ^7.19.1 + "@babel/types": ^7.19.0 + convert-source-map: ^1.7.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.1 + semver: ^6.3.0 + checksum: 941c8c119b80bdba5fafc80bbaa424d51146b6d3c30b8fae35879358dd37c11d3d0926bc7e970a0861229656eedaa8c884d4a3a25cc904086eb73b827a2f1168 + languageName: node + linkType: hard + +"@babel/generator@npm:^7.19.0, @babel/generator@npm:^7.7.2": + version: 7.19.0 + resolution: "@babel/generator@npm:7.19.0" + dependencies: + "@babel/types": ^7.19.0 + "@jridgewell/gen-mapping": ^0.3.2 + jsesc: ^2.5.1 + checksum: aa3d5785cf8f8e81672dcc61aef351188efeadb20d9f66d79113d82cbcf3bbbdeb829989fa14582108572ddbc4e4027bdceb06ccaf5ec40fa93c2dda8fbcd4aa + languageName: node + linkType: hard + +"@babel/helper-annotate-as-pure@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/helper-annotate-as-pure@npm:7.18.6" + dependencies: + "@babel/types": ^7.18.6 + checksum: 88ccd15ced475ef2243fdd3b2916a29ea54c5db3cd0cfabf9d1d29ff6e63b7f7cd1c27264137d7a40ac2e978b9b9a542c332e78f40eb72abe737a7400788fc1b + languageName: node + linkType: hard + +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.18.6": + version: 7.18.9 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.18.9" + dependencies: + "@babel/helper-explode-assignable-expression": ^7.18.6 + "@babel/types": ^7.18.9 + checksum: b4bc214cb56329daff6cc18a7f7a26aeafb55a1242e5362f3d47fe3808421f8c7cd91fff95d6b9b7ccb67e14e5a67d944e49dbe026942bfcbfda19b1c72a8e72 + languageName: node + linkType: hard + +"@babel/helper-compilation-targets@npm:^7.17.7, @babel/helper-compilation-targets@npm:^7.18.9, @babel/helper-compilation-targets@npm:^7.19.0, @babel/helper-compilation-targets@npm:^7.19.1": + version: 7.19.1 + resolution: "@babel/helper-compilation-targets@npm:7.19.1" + dependencies: + "@babel/compat-data": ^7.19.1 + "@babel/helper-validator-option": ^7.18.6 + browserslist: ^4.21.3 + semver: ^6.3.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: c2d3039265e498b341a6b597f855f2fcef02659050fefedf36ad4e6815e6aafe1011a761214cc80d98260ed07ab15a8cbe959a0458e97bec5f05a450e1b1741b + languageName: node + linkType: hard + +"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.19.0": + version: 7.19.0 + resolution: "@babel/helper-create-class-features-plugin@npm:7.19.0" + dependencies: + "@babel/helper-annotate-as-pure": ^7.18.6 + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-function-name": ^7.19.0 + "@babel/helper-member-expression-to-functions": ^7.18.9 + "@babel/helper-optimise-call-expression": ^7.18.6 + "@babel/helper-replace-supers": ^7.18.9 + "@babel/helper-split-export-declaration": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: f0c6fb77b6f113d70f308e7093f60dd465b697818badf5df0519d8dd12b6bfb1f4ad300b923207ce9f9c1c940ef58bff12ac4270c0863eadf9e303b7dd6d01b6 + languageName: node + linkType: hard + +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.19.0": + version: 7.19.0 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.19.0" + dependencies: + "@babel/helper-annotate-as-pure": ^7.18.6 + regexpu-core: ^5.1.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 811cc90afe9fc25a74ed37fc0c1361a4a91b0b940235dd3958e3f03b366d40a903b40fc93b51bcb93be774aba573219f8f215664bea1d1301f58797ca6854f3f + languageName: node + linkType: hard + +"@babel/helper-define-polyfill-provider@npm:^0.3.3": + version: 0.3.3 + resolution: "@babel/helper-define-polyfill-provider@npm:0.3.3" + dependencies: + "@babel/helper-compilation-targets": ^7.17.7 + "@babel/helper-plugin-utils": ^7.16.7 + debug: ^4.1.1 + lodash.debounce: ^4.0.8 + resolve: ^1.14.2 + semver: ^6.1.2 + peerDependencies: + "@babel/core": ^7.4.0-0 + checksum: 8e3fe75513302e34f6d92bd67b53890e8545e6c5bca8fe757b9979f09d68d7e259f6daea90dc9e01e332c4f8781bda31c5fe551c82a277f9bc0bec007aed497c + languageName: node + linkType: hard + +"@babel/helper-environment-visitor@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/helper-environment-visitor@npm:7.18.9" + checksum: b25101f6162ddca2d12da73942c08ad203d7668e06663df685634a8fde54a98bc015f6f62938e8554457a592a024108d45b8f3e651fd6dcdb877275b73cc4420 + languageName: node + linkType: hard + +"@babel/helper-explode-assignable-expression@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/helper-explode-assignable-expression@npm:7.18.6" + dependencies: + "@babel/types": ^7.18.6 + checksum: 225cfcc3376a8799023d15dc95000609e9d4e7547b29528c7f7111a0e05493ffb12c15d70d379a0bb32d42752f340233c4115bded6d299bc0c3ab7a12be3d30f + languageName: node + linkType: hard + +"@babel/helper-function-name@npm:^7.18.9, @babel/helper-function-name@npm:^7.19.0": + version: 7.19.0 + resolution: "@babel/helper-function-name@npm:7.19.0" + dependencies: + "@babel/template": ^7.18.10 + "@babel/types": ^7.19.0 + checksum: eac1f5db428ba546270c2b8d750c24eb528b8fcfe50c81de2e0bdebf0e20f24bec688d4331533b782e4a907fad435244621ca2193cfcf80a86731299840e0f6e + languageName: node + linkType: hard + +"@babel/helper-hoist-variables@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/helper-hoist-variables@npm:7.18.6" + dependencies: + "@babel/types": ^7.18.6 + checksum: fd9c35bb435fda802bf9ff7b6f2df06308a21277c6dec2120a35b09f9de68f68a33972e2c15505c1a1a04b36ec64c9ace97d4a9e26d6097b76b4396b7c5fa20f + languageName: node + linkType: hard + +"@babel/helper-member-expression-to-functions@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/helper-member-expression-to-functions@npm:7.18.9" + dependencies: + "@babel/types": ^7.18.9 + checksum: fcf8184e3b55051c4286b2cbedf0eccc781d0f3c9b5cbaba582eca19bf0e8d87806cdb7efc8554fcb969ceaf2b187d5ea748d40022d06ec7739fbb18c1b19a7a + languageName: node + linkType: hard + +"@babel/helper-module-imports@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/helper-module-imports@npm:7.18.6" + dependencies: + "@babel/types": ^7.18.6 + checksum: f393f8a3b3304b1b7a288a38c10989de754f01d29caf62ce7c4e5835daf0a27b81f3ac687d9d2780d39685aae7b55267324b512150e7b2be967b0c493b6a1def + languageName: node + linkType: hard + +"@babel/helper-module-transforms@npm:^7.18.6, @babel/helper-module-transforms@npm:^7.19.0": + version: 7.19.0 + resolution: "@babel/helper-module-transforms@npm:7.19.0" + dependencies: + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-module-imports": ^7.18.6 + "@babel/helper-simple-access": ^7.18.6 + "@babel/helper-split-export-declaration": ^7.18.6 + "@babel/helper-validator-identifier": ^7.18.6 + "@babel/template": ^7.18.10 + "@babel/traverse": ^7.19.0 + "@babel/types": ^7.19.0 + checksum: 4483276c66f56cf3b5b063634092ad9438c2593725de5c143ba277dda82f1501e6d73b311c1b28036f181dbe36eaeff29f24726cde37a599d4e735af294e5359 + languageName: node + linkType: hard + +"@babel/helper-optimise-call-expression@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/helper-optimise-call-expression@npm:7.18.6" + dependencies: + "@babel/types": ^7.18.6 + checksum: e518fe8418571405e21644cfb39cf694f30b6c47b10b006609a92469ae8b8775cbff56f0b19732343e2ea910641091c5a2dc73b56ceba04e116a33b0f8bd2fbd + 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.16.7, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.18.9, @babel/helper-plugin-utils@npm:^7.19.0, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": + version: 7.19.0 + resolution: "@babel/helper-plugin-utils@npm:7.19.0" + checksum: eedc996c633c8c207921c26ec2989eae0976336ecd9b9f1ac526498f52b5d136f7cd03c32b6fdf8d46a426f907c142de28592f383c42e5fba1e904cbffa05345 + languageName: node + linkType: hard + +"@babel/helper-remap-async-to-generator@npm:^7.18.6, @babel/helper-remap-async-to-generator@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/helper-remap-async-to-generator@npm:7.18.9" + dependencies: + "@babel/helper-annotate-as-pure": ^7.18.6 + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-wrap-function": ^7.18.9 + "@babel/types": ^7.18.9 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 4be6076192308671b046245899b703ba090dbe7ad03e0bea897bb2944ae5b88e5e85853c9d1f83f643474b54c578d8ac0800b80341a86e8538264a725fbbefec + languageName: node + linkType: hard + +"@babel/helper-replace-supers@npm:^7.18.6, @babel/helper-replace-supers@npm:^7.18.9": + version: 7.19.1 + resolution: "@babel/helper-replace-supers@npm:7.19.1" + dependencies: + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-member-expression-to-functions": ^7.18.9 + "@babel/helper-optimise-call-expression": ^7.18.6 + "@babel/traverse": ^7.19.1 + "@babel/types": ^7.19.0 + checksum: a0e4bf79ebe7d2bb5947169e47a0b4439c73fb0ec57d446cf3ea81b736721129ec373c3f94d2ebd2716b26dd65f8e6c083dac898170d42905e7ba815a2f52c25 + languageName: node + linkType: hard + +"@babel/helper-simple-access@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/helper-simple-access@npm:7.18.6" + dependencies: + "@babel/types": ^7.18.6 + checksum: 37cd36eef199e0517845763c1e6ff6ea5e7876d6d707a6f59c9267c547a50aa0e84260ba9285d49acfaf2cfa0a74a772d92967f32ac1024c961517d40b6c16a5 + languageName: node + linkType: hard + +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.18.9" + dependencies: + "@babel/types": ^7.18.9 + checksum: 6e93ccd10248293082606a4b3e30eed32c6f796d378f6b662796c88f462f348aa368aadeb48eb410cfcc8250db93b2d6627c2e55662530f08fc25397e588d68a + languageName: node + linkType: hard + +"@babel/helper-split-export-declaration@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/helper-split-export-declaration@npm:7.18.6" + dependencies: + "@babel/types": ^7.18.6 + checksum: c6d3dede53878f6be1d869e03e9ffbbb36f4897c7cc1527dc96c56d127d834ffe4520a6f7e467f5b6f3c2843ea0e81a7819d66ae02f707f6ac057f3d57943a2b + languageName: node + linkType: hard + +"@babel/helper-string-parser@npm:^7.18.10": + version: 7.18.10 + resolution: "@babel/helper-string-parser@npm:7.18.10" + checksum: d554a4393365b624916b5c00a4cc21c990c6617e7f3fe30be7d9731f107f12c33229a7a3db9d829bfa110d2eb9f04790745d421640e3bd245bb412dc0ea123c1 + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.18.6": + version: 7.19.1 + resolution: "@babel/helper-validator-identifier@npm:7.19.1" + checksum: 0eca5e86a729162af569b46c6c41a63e18b43dbe09fda1d2a3c8924f7d617116af39cac5e4cd5d431bb760b4dca3c0970e0c444789b1db42bcf1fa41fbad0a3a + languageName: node + linkType: hard + +"@babel/helper-validator-option@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/helper-validator-option@npm:7.18.6" + checksum: f9cc6eb7cc5d759c5abf006402180f8d5e4251e9198197428a97e05d65eb2f8ae5a0ce73b1dfd2d35af41d0eb780627a64edf98a4e71f064eeeacef8de58f2cf + languageName: node + linkType: hard + +"@babel/helper-wrap-function@npm:^7.18.9": + version: 7.19.0 + resolution: "@babel/helper-wrap-function@npm:7.19.0" + dependencies: + "@babel/helper-function-name": ^7.19.0 + "@babel/template": ^7.18.10 + "@babel/traverse": ^7.19.0 + "@babel/types": ^7.19.0 + checksum: 2453a6b134f12cc779179188c4358a66252c29b634a8195c0cf626e17f9806c3c4c40e159cd8056c2ec82b69b9056a088014fa43d6ccc1aca67da8d9605da8fd + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.19.0": + version: 7.19.0 + resolution: "@babel/helpers@npm:7.19.0" + dependencies: + "@babel/template": ^7.18.10 + "@babel/traverse": ^7.19.0 + "@babel/types": ^7.19.0 + checksum: e50e78e0dbb0435075fa3f85021a6bcae529589800bca0292721afd7f7c874bea54508d6dc57eca16e5b8224f8142c6b0e32e3b0140029dc09865da747da4623 + languageName: node + linkType: hard + +"@babel/highlight@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/highlight@npm:7.18.6" + dependencies: + "@babel/helper-validator-identifier": ^7.18.6 + chalk: ^2.0.0 + js-tokens: ^4.0.0 + checksum: 92d8ee61549de5ff5120e945e774728e5ccd57fd3b2ed6eace020ec744823d4a98e242be1453d21764a30a14769ecd62170fba28539b211799bbaf232bbb2789 + languageName: node + linkType: hard + +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.18.10, @babel/parser@npm:^7.19.1": + version: 7.19.1 + resolution: "@babel/parser@npm:7.19.1" + bin: + parser: ./bin/babel-parser.js + checksum: b1e0acb346b2a533c857e1e97ac0886cdcbd76aafef67835a2b23f760c10568eb53ad8a27dd5f862d8ba4e583742e6067f107281ccbd68959d61bc61e4ddaa51 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 845bd280c55a6a91d232cfa54eaf9708ec71e594676fe705794f494bb8b711d833b752b59d1a5c154695225880c23dbc9cab0e53af16fd57807976cd3ff41b8d + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.18.9" + dependencies: + "@babel/helper-plugin-utils": ^7.18.9 + "@babel/helper-skip-transparent-expression-wrappers": ^7.18.9 + "@babel/plugin-proposal-optional-chaining": ^7.18.9 + peerDependencies: + "@babel/core": ^7.13.0 + checksum: 93abb5cb179a13db171bfc2cdf79489598f43c50cc174f97a2b7bb1d44d24ade7109665a20cf4e317ad6c1c730f036f06478f7c7e789b4240be1abdb60d6452f + languageName: node + linkType: hard + +"@babel/plugin-proposal-async-generator-functions@npm:^7.19.1": + version: 7.19.1 + resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.19.1" + dependencies: + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-plugin-utils": ^7.19.0 + "@babel/helper-remap-async-to-generator": ^7.18.9 + "@babel/plugin-syntax-async-generators": ^7.8.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f101555b00aee6ee0107c9e40d872ad646bbd3094abdbeda56d17b107df69a0cb49e5d02dcf5f9d8753e25564e798d08429f12d811aaa1b307b6a725c0b8159c + languageName: node + linkType: hard + +"@babel/plugin-proposal-class-properties@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 49a78a2773ec0db56e915d9797e44fd079ab8a9b2e1716e0df07c92532f2c65d76aeda9543883916b8e0ff13606afeffa67c5b93d05b607bc87653ad18a91422 + languageName: node + linkType: hard + +"@babel/plugin-proposal-class-static-block@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-class-static-block@npm:7.18.6" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + "@babel/plugin-syntax-class-static-block": ^7.14.5 + peerDependencies: + "@babel/core": ^7.12.0 + checksum: b8d7ae99ed5ad784f39e7820e3ac03841f91d6ed60ab4a98c61d6112253da36013e12807bae4ffed0ef3cb318e47debac112ed614e03b403fb8b075b09a828ee + languageName: node + linkType: hard + +"@babel/plugin-proposal-dynamic-import@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-dynamic-import@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + "@babel/plugin-syntax-dynamic-import": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 96b1c8a8ad8171d39e9ab106be33bde37ae09b22fb2c449afee9a5edf3c537933d79d963dcdc2694d10677cb96da739cdf1b53454e6a5deab9801f28a818bb2f + languageName: node + linkType: hard + +"@babel/plugin-proposal-export-namespace-from@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/plugin-proposal-export-namespace-from@npm:7.18.9" + dependencies: + "@babel/helper-plugin-utils": ^7.18.9 + "@babel/plugin-syntax-export-namespace-from": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 84ff22bacc5d30918a849bfb7e0e90ae4c5b8d8b65f2ac881803d1cf9068dffbe53bd657b0e4bc4c20b4db301b1c85f1e74183cf29a0dd31e964bd4e97c363ef + languageName: node + linkType: hard + +"@babel/plugin-proposal-json-strings@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-json-strings@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + "@babel/plugin-syntax-json-strings": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 25ba0e6b9d6115174f51f7c6787e96214c90dd4026e266976b248a2ed417fe50fddae72843ffb3cbe324014a18632ce5648dfac77f089da858022b49fd608cb3 + languageName: node + linkType: hard + +"@babel/plugin-proposal-logical-assignment-operators@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/plugin-proposal-logical-assignment-operators@npm:7.18.9" + dependencies: + "@babel/helper-plugin-utils": ^7.18.9 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: dd87fa4a48c6408c5e85dbd6405a65cc8fe909e3090030df46df90df64cdf3e74007381a58ed87608778ee597eff7395d215274009bb3f5d8964b2db5557754f + languageName: node + linkType: hard + +"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 949c9ddcdecdaec766ee610ef98f965f928ccc0361dd87cf9f88cf4896a6ccd62fce063d4494778e50da99dea63d270a1be574a62d6ab81cbe9d85884bf55a7d + languageName: node + linkType: hard + +"@babel/plugin-proposal-numeric-separator@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-numeric-separator@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f370ea584c55bf4040e1f78c80b4eeb1ce2e6aaa74f87d1a48266493c33931d0b6222d8cee3a082383d6bb648ab8d6b7147a06f974d3296ef3bc39c7851683ec + languageName: node + linkType: hard + +"@babel/plugin-proposal-object-rest-spread@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.18.9" + dependencies: + "@babel/compat-data": ^7.18.8 + "@babel/helper-compilation-targets": ^7.18.9 + "@babel/helper-plugin-utils": ^7.18.9 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-transform-parameters": ^7.18.8 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 66b9bae741d46edf1c96776d26dfe5d335981e57164ec2450583e3d20dfaa08a5137ffebb897e443913207789f9816bfec4ae845f38762c0196a60949eaffdba + languageName: node + linkType: hard + +"@babel/plugin-proposal-optional-catch-binding@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-optional-catch-binding@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7b5b39fb5d8d6d14faad6cb68ece5eeb2fd550fb66b5af7d7582402f974f5bc3684641f7c192a5a57e0f59acfae4aada6786be1eba030881ddc590666eff4d1e + languageName: node + linkType: hard + +"@babel/plugin-proposal-optional-chaining@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/plugin-proposal-optional-chaining@npm:7.18.9" + dependencies: + "@babel/helper-plugin-utils": ^7.18.9 + "@babel/helper-skip-transparent-expression-wrappers": ^7.18.9 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f2db40e26172f07c50b635cb61e1f36165de3ba868fcf608d967642f0d044b7c6beb0e7ecf17cbd421144b99e1eae7ad6031ded92925343bb0ed1d08707b514f + languageName: node + linkType: hard + +"@babel/plugin-proposal-private-methods@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-private-methods@npm:7.18.6" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 22d8502ee96bca99ad2c8393e8493e2b8d4507576dd054490fd8201a36824373440106f5b098b6d821b026c7e72b0424ff4aeca69ed5f42e48f029d3a156d5ad + languageName: node + linkType: hard + +"@babel/plugin-proposal-private-property-in-object@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.18.6" + dependencies: + "@babel/helper-annotate-as-pure": ^7.18.6 + "@babel/helper-create-class-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + "@babel/plugin-syntax-private-property-in-object": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c8e56a972930730345f39f2384916fd8e711b3f4b4eae2ca9740e99958980118120d5cc9b6ac150f0965a5a35f825910e2c3013d90be3e9993ab6111df444569 + languageName: node + linkType: hard + +"@babel/plugin-proposal-unicode-property-regex@npm:^7.18.6, @babel/plugin-proposal-unicode-property-regex@npm:^7.4.4": + version: 7.18.6 + resolution: "@babel/plugin-proposal-unicode-property-regex@npm:7.18.6" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a8575ecb7ff24bf6c6e94808d5c84bb5a0c6dd7892b54f09f4646711ba0ee1e1668032b3c43e3e1dfec2c5716c302e851ac756c1645e15882d73df6ad21ae951 + 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.12.13, @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-class-static-block@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3e80814b5b6d4fe17826093918680a351c2d34398a914ce6e55d8083d72a9bdde4fbaf6a2dcea0e23a03de26dc2917ae3efd603d27099e2b98380345703bf948 + languageName: node + linkType: hard + +"@babel/plugin-syntax-dynamic-import@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ce307af83cf433d4ec42932329fad25fa73138ab39c7436882ea28742e1c0066626d224e0ad2988724c82644e41601cef607b36194f695cb78a1fcdc959637bd + languageName: node + linkType: hard + +"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 85740478be5b0de185228e7814451d74ab8ce0a26fcca7613955262a26e99e8e15e9da58f60c754b84515d4c679b590dbd3f2148f0f58025f4ae706f1c5a5d4a + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-assertions@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 54918a05375325ba0c60bc81abfb261e6f118bed2de94e4c17dca9a2006fc25e13b1a8b5504b9a881238ea394fd2f098f60b2eb3a392585d6348874565445e7b + 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.10.4, @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.10.4, @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-private-property-in-object@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b317174783e6e96029b743ccff2a67d63d38756876e7e5d0ba53a322e38d9ca452c13354a57de1ad476b4c066dbae699e0ca157441da611117a47af88985ecda + languageName: node + linkType: hard + +"@babel/plugin-syntax-top-level-await@npm:^7.14.5, @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.18.6, @babel/plugin-syntax-typescript@npm:^7.7.2": + version: 7.18.6 + resolution: "@babel/plugin-syntax-typescript@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2cde73725ec51118ebf410bf02d78781c03fa4d3185993fcc9d253b97443381b621c44810084c5dd68b92eb8bdfae0e5b163e91b32bebbb33852383d1815c05d + languageName: node + linkType: hard + +"@babel/plugin-transform-arrow-functions@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 900f5c695755062b91eec74da6f9092f40b8fada099058b92576f1e23c55e9813ec437051893a9b3c05cefe39e8ac06303d4a91b384e1c03dd8dc1581ea11602 + languageName: node + linkType: hard + +"@babel/plugin-transform-async-to-generator@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.18.6" + dependencies: + "@babel/helper-module-imports": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-remap-async-to-generator": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c2cca47468cf1aeefdc7ec35d670e195c86cee4de28a1970648c46a88ce6bd1806ef0bab27251b9e7fb791bb28a64dcd543770efd899f28ee5f7854e64e873d3 + languageName: node + linkType: hard + +"@babel/plugin-transform-block-scoped-functions@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0a0df61f94601e3666bf39f2cc26f5f7b22a94450fb93081edbed967bd752ce3f81d1227fefd3799f5ee2722171b5e28db61379234d1bb85b6ec689589f99d7e + languageName: node + linkType: hard + +"@babel/plugin-transform-block-scoping@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/plugin-transform-block-scoping@npm:7.18.9" + dependencies: + "@babel/helper-plugin-utils": ^7.18.9 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f8064ea431eb7aa349dc5b6be87a650f912b48cd65afde917e8644f6f840d7f9d2ce4795f2aa3955aa5b23a73d4ad38abd03386ae109b4b8702b746c6d35bda3 + languageName: node + linkType: hard + +"@babel/plugin-transform-classes@npm:^7.19.0": + version: 7.19.0 + resolution: "@babel/plugin-transform-classes@npm:7.19.0" + dependencies: + "@babel/helper-annotate-as-pure": ^7.18.6 + "@babel/helper-compilation-targets": ^7.19.0 + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-function-name": ^7.19.0 + "@babel/helper-optimise-call-expression": ^7.18.6 + "@babel/helper-plugin-utils": ^7.19.0 + "@babel/helper-replace-supers": ^7.18.9 + "@babel/helper-split-export-declaration": ^7.18.6 + globals: ^11.1.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 5500953031fc3eae73f717c7b59ef406158a4a710d566a0f78a4944240bcf98f817f07cf1d6af0e749e21f0dfee29c36412b75d57b0a753c3ad823b70c596b79 + languageName: node + linkType: hard + +"@babel/plugin-transform-computed-properties@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/plugin-transform-computed-properties@npm:7.18.9" + dependencies: + "@babel/helper-plugin-utils": ^7.18.9 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a6bfbea207827d77592628973c0e8cc3319db636506bdc6e81e21582de2e767890e6975b382d0511e9ec3773b9f43691185df90832883bbf9251f688d27fbc1d + languageName: node + linkType: hard + +"@babel/plugin-transform-destructuring@npm:^7.18.13": + version: 7.18.13 + resolution: "@babel/plugin-transform-destructuring@npm:7.18.13" + dependencies: + "@babel/helper-plugin-utils": ^7.18.9 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 83e44ec93a4cfbf69376db8836d00ec803820081bf0f8b6cea73a9b3cd320b8285768d5b385744af4a27edda4b6502245c52d3ed026ea61356faf57bfe78effb + languageName: node + linkType: hard + +"@babel/plugin-transform-dotall-regex@npm:^7.18.6, @babel/plugin-transform-dotall-regex@npm:^7.4.4": + version: 7.18.6 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.18.6" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: cbe5d7063eb8f8cca24cd4827bc97f5641166509e58781a5f8aa47fb3d2d786ce4506a30fca2e01f61f18792783a5cb5d96bf5434c3dd1ad0de8c9cc625a53da + languageName: node + linkType: hard + +"@babel/plugin-transform-duplicate-keys@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.18.9" + dependencies: + "@babel/helper-plugin-utils": ^7.18.9 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 220bf4a9fec5c4d4a7b1de38810350260e8ea08481bf78332a464a21256a95f0df8cd56025f346238f09b04f8e86d4158fafc9f4af57abaef31637e3b58bd4fe + languageName: node + linkType: hard + +"@babel/plugin-transform-exponentiation-operator@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.18.6" + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7f70222f6829c82a36005508d34ddbe6fd0974ae190683a8670dd6ff08669aaf51fef2209d7403f9bd543cb2d12b18458016c99a6ed0332ccedb3ea127b01229 + languageName: node + linkType: hard + +"@babel/plugin-transform-for-of@npm:^7.18.8": + version: 7.18.8 + resolution: "@babel/plugin-transform-for-of@npm:7.18.8" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ca64c623cf0c7a80ab6f07ebd3e6e4ade95e2ae806696f70b43eafe6394fa8ce21f2b1ffdd15df2067f7363d2ecfe26472a97c6c774403d2163fa05f50c98f17 + languageName: node + linkType: hard + +"@babel/plugin-transform-function-name@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/plugin-transform-function-name@npm:7.18.9" + dependencies: + "@babel/helper-compilation-targets": ^7.18.9 + "@babel/helper-function-name": ^7.18.9 + "@babel/helper-plugin-utils": ^7.18.9 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 62dd9c6cdc9714704efe15545e782ee52d74dc73916bf954b4d3bee088fb0ec9e3c8f52e751252433656c09f744b27b757fc06ed99bcde28e8a21600a1d8e597 + languageName: node + linkType: hard + +"@babel/plugin-transform-literals@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/plugin-transform-literals@npm:7.18.9" + dependencies: + "@babel/helper-plugin-utils": ^7.18.9 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3458dd2f1a47ac51d9d607aa18f3d321cbfa8560a985199185bed5a906bb0c61ba85575d386460bac9aed43fdd98940041fae5a67dff286f6f967707cff489f8 + languageName: node + linkType: hard + +"@babel/plugin-transform-member-expression-literals@npm:^7.18.6": version: 7.18.6 - resolution: "@babel/code-frame@npm:7.18.6" + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.18.6" dependencies: - "@babel/highlight": ^7.18.6 - checksum: 195e2be3172d7684bf95cff69ae3b7a15a9841ea9d27d3c843662d50cdd7d6470fd9c8e64be84d031117e4a4083486effba39f9aef6bbb2c89f7f21bcfba33ba + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 35a3d04f6693bc6b298c05453d85ee6e41cc806538acb6928427e0e97ae06059f97d2f07d21495fcf5f70d3c13a242e2ecbd09d5c1fcb1b1a73ff528dcb0b695 languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.18.6": +"@babel/plugin-transform-modules-amd@npm:^7.18.6": version: 7.18.6 - resolution: "@babel/helper-validator-identifier@npm:7.18.6" - checksum: e295254d616bbe26e48c196a198476ab4d42a73b90478c9842536cf910ead887f5af6b5c4df544d3052a25ccb3614866fa808dc1e3a5a4291acd444e243c0648 + resolution: "@babel/plugin-transform-modules-amd@npm:7.18.6" + dependencies: + "@babel/helper-module-transforms": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + babel-plugin-dynamic-import-node: ^2.3.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f60c4c4e0eaec41e42c003cbab44305da7a8e05b2c9bdfc2b3fe0f9e1d7441c959ff5248aa03e350abe530e354028cbf3aa20bf07067b11510997dad8dd39be0 languageName: node linkType: hard -"@babel/highlight@npm:^7.18.6": +"@babel/plugin-transform-modules-commonjs@npm:^7.18.6": version: 7.18.6 - resolution: "@babel/highlight@npm:7.18.6" + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.18.6" + dependencies: + "@babel/helper-module-transforms": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-simple-access": ^7.18.6 + babel-plugin-dynamic-import-node: ^2.3.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7e356e3df8a6a8542cced7491ec5b1cc1093a88d216a59e63a5d2b9fe9d193cbea864f680a41429e41a4f9ecec930aa5b0b8f57e2b17b3b4d27923bb12ba5d14 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-systemjs@npm:^7.19.0": + version: 7.19.0 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.19.0" dependencies: + "@babel/helper-hoist-variables": ^7.18.6 + "@babel/helper-module-transforms": ^7.19.0 + "@babel/helper-plugin-utils": ^7.19.0 "@babel/helper-validator-identifier": ^7.18.6 - chalk: ^2.0.0 - js-tokens: ^4.0.0 - checksum: 92d8ee61549de5ff5120e945e774728e5ccd57fd3b2ed6eace020ec744823d4a98e242be1453d21764a30a14769ecd62170fba28539b211799bbaf232bbb2789 + babel-plugin-dynamic-import-node: ^2.3.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a0742deee4a076d6fc303d036c1ea2bea9b7d91af390483fe91fc415f9cb43925bb5dd930fdcb8fcdc9d4c7a22774a3cec521c67f1422a9b473debcb85ee57f9 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-umd@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-modules-umd@npm:7.18.6" + dependencies: + "@babel/helper-module-transforms": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c3b6796c6f4579f1ba5ab0cdcc73910c1e9c8e1e773c507c8bb4da33072b3ae5df73c6d68f9126dab6e99c24ea8571e1563f8710d7c421fac1cde1e434c20153 + languageName: node + linkType: hard + +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.19.1": + version: 7.19.1 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.19.1" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.19.0 + "@babel/helper-plugin-utils": ^7.19.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 8a40f5d04f2140c44fe890a5a3fd72abc2a88445443ac2bd92e1e85d9366d3eb8f1ebb7e2c89d2daeaf213d9b28cb65605502ac9b155936d48045eeda6053494 + languageName: node + linkType: hard + +"@babel/plugin-transform-new-target@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-new-target@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bd780e14f46af55d0ae8503b3cb81ca86dcc73ed782f177e74f498fff934754f9e9911df1f8f3bd123777eed7c1c1af4d66abab87c8daae5403e7719a6b845d1 + languageName: node + linkType: hard + +"@babel/plugin-transform-object-super@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-object-super@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-replace-supers": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0fcb04e15deea96ae047c21cb403607d49f06b23b4589055993365ebd7a7d7541334f06bf9642e90075e66efce6ebaf1eb0ef066fbbab802d21d714f1aac3aef + languageName: node + linkType: hard + +"@babel/plugin-transform-parameters@npm:^7.18.8": + version: 7.18.8 + resolution: "@babel/plugin-transform-parameters@npm:7.18.8" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2b5863300da60face8a250d91da16294333bd5626e9721b13a3ba2078bd2a5a190e32c6e7a1323d5f547f579aeb2804ff49a62a55fcad2b1d099e55a55b788ea + languageName: node + linkType: hard + +"@babel/plugin-transform-property-literals@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-property-literals@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 1c16e64de554703f4b547541de2edda6c01346dd3031d4d29e881aa7733785cd26d53611a4ccf5353f4d3e69097bb0111c0a93ace9e683edd94fea28c4484144 + languageName: node + linkType: hard + +"@babel/plugin-transform-regenerator@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-regenerator@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + regenerator-transform: ^0.15.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 60bd482cb0343c714f85c3e19a13b3b5fa05ee336c079974091c0b35e263307f4e661f4555dff90707a87d5efe19b1d51835db44455405444ac1813e268ad750 + languageName: node + linkType: hard + +"@babel/plugin-transform-reserved-words@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-reserved-words@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0738cdc30abdae07c8ec4b233b30c31f68b3ff0eaa40eddb45ae607c066127f5fa99ddad3c0177d8e2832e3a7d3ad115775c62b431ebd6189c40a951b867a80c + languageName: node + linkType: hard + +"@babel/plugin-transform-shorthand-properties@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b8e4e8acc2700d1e0d7d5dbfd4fdfb935651913de6be36e6afb7e739d8f9ca539a5150075a0f9b79c88be25ddf45abb912fe7abf525f0b80f5b9d9860de685d7 + languageName: node + linkType: hard + +"@babel/plugin-transform-spread@npm:^7.19.0": + version: 7.19.0 + resolution: "@babel/plugin-transform-spread@npm:7.19.0" + dependencies: + "@babel/helper-plugin-utils": ^7.19.0 + "@babel/helper-skip-transparent-expression-wrappers": ^7.18.9 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e73a4deb095999185e70b524d0ff4e35df50fcda58299e700a6149a15bbc1a9b369ef1cef384e15a54b3c3ce316cc0f054dbf249dcd0d1ca59f4281dd4df9718 + languageName: node + linkType: hard + +"@babel/plugin-transform-sticky-regex@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 68ea18884ae9723443ffa975eb736c8c0d751265859cd3955691253f7fee37d7a0f7efea96c8a062876af49a257a18ea0ed5fea0d95a7b3611ce40f7ee23aee3 + languageName: node + linkType: hard + +"@babel/plugin-transform-template-literals@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/plugin-transform-template-literals@npm:7.18.9" + dependencies: + "@babel/helper-plugin-utils": ^7.18.9 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3d2fcd79b7c345917f69b92a85bdc3ddd68ce2c87dc70c7d61a8373546ccd1f5cb8adc8540b49dfba08e1b82bb7b3bbe23a19efdb2b9c994db2db42906ca9fb2 + languageName: node + linkType: hard + +"@babel/plugin-transform-typeof-symbol@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.18.9" + dependencies: + "@babel/helper-plugin-utils": ^7.18.9 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e754e0d8b8a028c52e10c148088606e3f7a9942c57bd648fc0438e5b4868db73c386a5ed47ab6d6f0594aae29ee5ffc2ffc0f7ebee7fae560a066d6dea811cd4 + languageName: node + linkType: hard + +"@babel/plugin-transform-typescript@npm:^7.18.6": + version: 7.19.1 + resolution: "@babel/plugin-transform-typescript@npm:7.19.1" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.19.0 + "@babel/helper-plugin-utils": ^7.19.0 + "@babel/plugin-syntax-typescript": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 434752f9cfb3cfe5dc0a3c8118b404bb7340b665c01cf6b817a9d6dafa10ca128fccecf4c507286fb00a92b89bcabeb8256e67c18aef5db9fdc4eb8a71881d70 + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-escapes@npm:^7.18.10": + version: 7.18.10 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.18.10" + dependencies: + "@babel/helper-plugin-utils": ^7.18.9 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f5baca55cb3c11bc08ec589f5f522d85c1ab509b4d11492437e45027d64ae0b22f0907bd1381e8d7f2a436384bb1f9ad89d19277314242c5c2671a0f91d0f9cd + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-regex@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.18.6" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d9e18d57536a2d317fb0b7c04f8f55347f3cfacb75e636b4c6fa2080ab13a3542771b5120e726b598b815891fc606d1472ac02b749c69fd527b03847f22dc25e + languageName: node + linkType: hard + +"@babel/preset-env@npm:^7.16.8": + version: 7.19.1 + resolution: "@babel/preset-env@npm:7.19.1" + dependencies: + "@babel/compat-data": ^7.19.1 + "@babel/helper-compilation-targets": ^7.19.1 + "@babel/helper-plugin-utils": ^7.19.0 + "@babel/helper-validator-option": ^7.18.6 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.18.6 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.18.9 + "@babel/plugin-proposal-async-generator-functions": ^7.19.1 + "@babel/plugin-proposal-class-properties": ^7.18.6 + "@babel/plugin-proposal-class-static-block": ^7.18.6 + "@babel/plugin-proposal-dynamic-import": ^7.18.6 + "@babel/plugin-proposal-export-namespace-from": ^7.18.9 + "@babel/plugin-proposal-json-strings": ^7.18.6 + "@babel/plugin-proposal-logical-assignment-operators": ^7.18.9 + "@babel/plugin-proposal-nullish-coalescing-operator": ^7.18.6 + "@babel/plugin-proposal-numeric-separator": ^7.18.6 + "@babel/plugin-proposal-object-rest-spread": ^7.18.9 + "@babel/plugin-proposal-optional-catch-binding": ^7.18.6 + "@babel/plugin-proposal-optional-chaining": ^7.18.9 + "@babel/plugin-proposal-private-methods": ^7.18.6 + "@babel/plugin-proposal-private-property-in-object": ^7.18.6 + "@babel/plugin-proposal-unicode-property-regex": ^7.18.6 + "@babel/plugin-syntax-async-generators": ^7.8.4 + "@babel/plugin-syntax-class-properties": ^7.12.13 + "@babel/plugin-syntax-class-static-block": ^7.14.5 + "@babel/plugin-syntax-dynamic-import": ^7.8.3 + "@babel/plugin-syntax-export-namespace-from": ^7.8.3 + "@babel/plugin-syntax-import-assertions": ^7.18.6 + "@babel/plugin-syntax-json-strings": ^7.8.3 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 + "@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-private-property-in-object": ^7.14.5 + "@babel/plugin-syntax-top-level-await": ^7.14.5 + "@babel/plugin-transform-arrow-functions": ^7.18.6 + "@babel/plugin-transform-async-to-generator": ^7.18.6 + "@babel/plugin-transform-block-scoped-functions": ^7.18.6 + "@babel/plugin-transform-block-scoping": ^7.18.9 + "@babel/plugin-transform-classes": ^7.19.0 + "@babel/plugin-transform-computed-properties": ^7.18.9 + "@babel/plugin-transform-destructuring": ^7.18.13 + "@babel/plugin-transform-dotall-regex": ^7.18.6 + "@babel/plugin-transform-duplicate-keys": ^7.18.9 + "@babel/plugin-transform-exponentiation-operator": ^7.18.6 + "@babel/plugin-transform-for-of": ^7.18.8 + "@babel/plugin-transform-function-name": ^7.18.9 + "@babel/plugin-transform-literals": ^7.18.9 + "@babel/plugin-transform-member-expression-literals": ^7.18.6 + "@babel/plugin-transform-modules-amd": ^7.18.6 + "@babel/plugin-transform-modules-commonjs": ^7.18.6 + "@babel/plugin-transform-modules-systemjs": ^7.19.0 + "@babel/plugin-transform-modules-umd": ^7.18.6 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.19.1 + "@babel/plugin-transform-new-target": ^7.18.6 + "@babel/plugin-transform-object-super": ^7.18.6 + "@babel/plugin-transform-parameters": ^7.18.8 + "@babel/plugin-transform-property-literals": ^7.18.6 + "@babel/plugin-transform-regenerator": ^7.18.6 + "@babel/plugin-transform-reserved-words": ^7.18.6 + "@babel/plugin-transform-shorthand-properties": ^7.18.6 + "@babel/plugin-transform-spread": ^7.19.0 + "@babel/plugin-transform-sticky-regex": ^7.18.6 + "@babel/plugin-transform-template-literals": ^7.18.9 + "@babel/plugin-transform-typeof-symbol": ^7.18.9 + "@babel/plugin-transform-unicode-escapes": ^7.18.10 + "@babel/plugin-transform-unicode-regex": ^7.18.6 + "@babel/preset-modules": ^0.1.5 + "@babel/types": ^7.19.0 + babel-plugin-polyfill-corejs2: ^0.3.3 + babel-plugin-polyfill-corejs3: ^0.6.0 + babel-plugin-polyfill-regenerator: ^0.4.1 + core-js-compat: ^3.25.1 + semver: ^6.3.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3fcd4f3e768b8b0c9e8f9fb2b23d694d838d3cc936c783aaa9c436b863ae24811059b6ffed80e2ac7d54e7d2c18b0a190f4de05298cf461d27b2817b617ea71f + languageName: node + linkType: hard + +"@babel/preset-modules@npm:^0.1.5": + version: 0.1.5 + resolution: "@babel/preset-modules@npm:0.1.5" + dependencies: + "@babel/helper-plugin-utils": ^7.0.0 + "@babel/plugin-proposal-unicode-property-regex": ^7.4.4 + "@babel/plugin-transform-dotall-regex": ^7.4.4 + "@babel/types": ^7.4.4 + esutils: ^2.0.2 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 8430e0e9e9d520b53e22e8c4c6a5a080a12b63af6eabe559c2310b187bd62ae113f3da82ba33e9d1d0f3230930ca702843aae9dd226dec51f7d7114dc1f51c10 + languageName: node + linkType: hard + +"@babel/preset-typescript@npm:^7.17.12": + version: 7.18.6 + resolution: "@babel/preset-typescript@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-validator-option": ^7.18.6 + "@babel/plugin-transform-typescript": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7fe0da5103eb72d3cf39cf3e138a794c8cdd19c0b38e3e101507eef519c46a87a0d6d0e8bc9e28a13ea2364001ebe7430b9d75758aab4c3c3a8db9a487b9dc7c + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.8.4": + version: 7.19.0 + resolution: "@babel/runtime@npm:7.19.0" + dependencies: + regenerator-runtime: ^0.13.4 + checksum: fa69c351bb05e1db3ceb9a02fdcf620c234180af68cdda02152d3561015f6d55277265d3109815992f96d910f3db709458cae4f8df1c3def66f32e0867d82294 + languageName: node + linkType: hard + +"@babel/template@npm:^7.18.10, @babel/template@npm:^7.3.3": + version: 7.18.10 + resolution: "@babel/template@npm:7.18.10" + dependencies: + "@babel/code-frame": ^7.18.6 + "@babel/parser": ^7.18.10 + "@babel/types": ^7.18.10 + checksum: 93a6aa094af5f355a72bd55f67fa1828a046c70e46f01b1606e6118fa1802b6df535ca06be83cc5a5e834022be95c7b714f0a268b5f20af984465a71e28f1473 + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.19.0, @babel/traverse@npm:^7.19.1, @babel/traverse@npm:^7.7.2": + version: 7.19.1 + resolution: "@babel/traverse@npm:7.19.1" + dependencies: + "@babel/code-frame": ^7.18.6 + "@babel/generator": ^7.19.0 + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-function-name": ^7.19.0 + "@babel/helper-hoist-variables": ^7.18.6 + "@babel/helper-split-export-declaration": ^7.18.6 + "@babel/parser": ^7.19.1 + "@babel/types": ^7.19.0 + debug: ^4.1.0 + globals: ^11.1.0 + checksum: 9d782b5089ebc989e54c2406814ed1206cb745ed2734e6602dee3e23d4b6ebbb703ff86e536276630f8de83fda6cde99f0634e3c3d847ddb40572d0303ba8800 + languageName: node + linkType: hard + +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.10, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.19.0, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": + version: 7.19.0 + resolution: "@babel/types@npm:7.19.0" + dependencies: + "@babel/helper-string-parser": ^7.18.10 + "@babel/helper-validator-identifier": ^7.18.6 + to-fast-properties: ^2.0.0 + checksum: 9b346715a68aeede70ba9c685a144b0b26c53bcd595d448e24c8fa8df4d5956a5712e56ebadb7c85dcc32f218ee42788e37b93d50d3295c992072224cb3ef3fe + 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 -"@commitlint/cli@npm:^16.1.0": +"@commitlint/cli@npm:^16.0.2": version: 16.3.0 resolution: "@commitlint/cli@npm:16.3.0" dependencies: @@ -309,9 +1597,9 @@ __metadata: languageName: node linkType: hard -"@eslint/eslintrc@npm:^1.3.1": - version: 1.3.1 - resolution: "@eslint/eslintrc@npm:1.3.1" +"@eslint/eslintrc@npm:^1.3.2": + version: 1.3.2 + resolution: "@eslint/eslintrc@npm:1.3.2" dependencies: ajv: ^6.12.4 debug: ^4.3.2 @@ -322,7 +1610,7 @@ __metadata: js-yaml: ^4.1.0 minimatch: ^3.1.2 strip-json-comments: ^3.1.1 - checksum: 9844dcc58a44399649926d5a17a2d53d529b80d3e8c3e9d0964ae198bac77ee6bb1cf44940f30cd9c2e300f7568ec82500be42ace6cacefb08aebf9905fe208e + checksum: 2074dca47d7e1c5c6323ff353f690f4b25d3ab53fe7d27337e2592d37a894cf60ca0e85ca66b50ff2db0bc7e630cc1e9c7347d65bb185b61416565584c38999c languageName: node linkType: hard @@ -625,12 +1913,12 @@ __metadata: languageName: node linkType: hard -"@ethersproject/networks@npm:5.7.0, @ethersproject/networks@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/networks@npm:5.7.0" +"@ethersproject/networks@npm:5.7.1, @ethersproject/networks@npm:^5.7.0": + version: 5.7.1 + resolution: "@ethersproject/networks@npm:5.7.1" dependencies: "@ethersproject/logger": ^5.7.0 - checksum: 4f4d77e7c59e79cfcba616315a5d0e634a7653acbd11bb06a0028f4bd009b19f9a31556148a1e38f7308f55d1a1d170eb9f065290de9f9cf104b34e91cc348b8 + checksum: 0339f312304c17d9a0adce550edb825d4d2c8c9468c1634c44172c67a9ed256f594da62c4cda5c3837a0f28b7fabc03aca9b492f68ff1fdad337ee861b27bd5d languageName: node linkType: hard @@ -653,9 +1941,9 @@ __metadata: languageName: node linkType: hard -"@ethersproject/providers@npm:5.7.0": - version: 5.7.0 - resolution: "@ethersproject/providers@npm:5.7.0" +"@ethersproject/providers@npm:5.7.1": + version: 5.7.1 + resolution: "@ethersproject/providers@npm:5.7.1" dependencies: "@ethersproject/abstract-provider": ^5.7.0 "@ethersproject/abstract-signer": ^5.7.0 @@ -677,7 +1965,7 @@ __metadata: "@ethersproject/web": ^5.7.0 bech32: 1.1.4 ws: 7.4.6 - checksum: a6f80cea838424ceb367ff8e0f004f9fd6b43a87505da9d6aef33eb2bbc77cdb03ab51709ae83b7aa07d038fadf00634e08d8683fe6ae8b17b9351e3b30b26cb + checksum: 673745e967e7215b46b7d3024f5ee02be975d6cf66b605f87a0e5beaa349d6d30c987165f98eceddaf7996f64a1ec414f0715f25fc3458aead6eea4c4820c399 languageName: node linkType: hard @@ -802,16 +2090,16 @@ __metadata: languageName: node linkType: hard -"@ethersproject/web@npm:5.7.0, @ethersproject/web@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/web@npm:5.7.0" +"@ethersproject/web@npm:5.7.1, @ethersproject/web@npm:^5.7.0": + version: 5.7.1 + resolution: "@ethersproject/web@npm:5.7.1" dependencies: "@ethersproject/base64": ^5.7.0 "@ethersproject/bytes": ^5.7.0 "@ethersproject/logger": ^5.7.0 "@ethersproject/properties": ^5.7.0 "@ethersproject/strings": ^5.7.0 - checksum: 9d4ca82f8b1295bbc1c59d58cb351641802d2f70f4b7d523fc726f51b0615296da6d6585dee5749b4d5e4a6a9af6d6650d46fe562d5b04f43a0af5c7f7f4a77e + checksum: 7028c47103f82fd2e2c197ce0eecfacaa9180ffeec7de7845b1f4f9b19d84081b7a48227aaddde05a4aaa526af574a9a0ce01cc0fc75e3e371f84b38b5b16b2b languageName: node linkType: hard @@ -878,9 +2166,251 @@ __metadata: version: 0.0.11 resolution: "@iden3/binfileutils@npm:0.0.11" dependencies: - fastfile: 0.0.20 - ffjavascript: ^0.2.48 - checksum: ca61db1325c7e038c6bd723c856eff5f2c82c76394db09d3350ef4f5b7525e3c9ab1f7429900ff5d3e9d26c5970bf5900e6126ccb5c5caa597c16a47336a6be8 + fastfile: 0.0.20 + ffjavascript: ^0.2.48 + checksum: ca61db1325c7e038c6bd723c856eff5f2c82c76394db09d3350ef4f5b7525e3c9ab1f7429900ff5d3e9d26c5970bf5900e6126ccb5c5caa597c16a47336a6be8 + 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:^27.5.1": + version: 27.5.1 + resolution: "@jest/console@npm:27.5.1" + dependencies: + "@jest/types": ^27.5.1 + "@types/node": "*" + chalk: ^4.0.0 + jest-message-util: ^27.5.1 + jest-util: ^27.5.1 + slash: ^3.0.0 + checksum: 7cb20f06a34b09734c0342685ec53aa4c401fe3757c13a9c58fce76b971a322eb884f6de1068ef96f746e5398e067371b89515a07c268d4440a867c87748a706 + languageName: node + linkType: hard + +"@jest/core@npm:^27.5.1": + version: 27.5.1 + resolution: "@jest/core@npm:27.5.1" + dependencies: + "@jest/console": ^27.5.1 + "@jest/reporters": ^27.5.1 + "@jest/test-result": ^27.5.1 + "@jest/transform": ^27.5.1 + "@jest/types": ^27.5.1 + "@types/node": "*" + ansi-escapes: ^4.2.1 + chalk: ^4.0.0 + emittery: ^0.8.1 + exit: ^0.1.2 + graceful-fs: ^4.2.9 + jest-changed-files: ^27.5.1 + jest-config: ^27.5.1 + jest-haste-map: ^27.5.1 + jest-message-util: ^27.5.1 + jest-regex-util: ^27.5.1 + jest-resolve: ^27.5.1 + jest-resolve-dependencies: ^27.5.1 + jest-runner: ^27.5.1 + jest-runtime: ^27.5.1 + jest-snapshot: ^27.5.1 + jest-util: ^27.5.1 + jest-validate: ^27.5.1 + jest-watcher: ^27.5.1 + micromatch: ^4.0.4 + 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: 904a94ad8f1b43cd6b48de3b0226659bff3696150ff8cf7680fc2faffdc8a115203bb9ab6e817c1f79f9d6a81f67953053cbc64d8a4604f2e0c42a04c28cf126 + languageName: node + linkType: hard + +"@jest/environment@npm:^27.5.1": + version: 27.5.1 + resolution: "@jest/environment@npm:27.5.1" + dependencies: + "@jest/fake-timers": ^27.5.1 + "@jest/types": ^27.5.1 + "@types/node": "*" + jest-mock: ^27.5.1 + checksum: 2a9e18c35a015508dbec5b90b21c150230fa6c1c8cb8fabe029d46ee2ca4c40eb832fb636157da14c66590d0a4c8a2c053226b041f54a44507d6f6a89abefd66 + languageName: node + linkType: hard + +"@jest/fake-timers@npm:^27.5.1": + version: 27.5.1 + resolution: "@jest/fake-timers@npm:27.5.1" + dependencies: + "@jest/types": ^27.5.1 + "@sinonjs/fake-timers": ^8.0.1 + "@types/node": "*" + jest-message-util: ^27.5.1 + jest-mock: ^27.5.1 + jest-util: ^27.5.1 + checksum: 02a0561ed2f4586093facd4ae500b74694f187ac24d4a00e949a39a1c5325bca8932b4fcb0388a2c5ed0656506fc1cf51fd3e32cdd48cea7497ad9c6e028aba8 + languageName: node + linkType: hard + +"@jest/globals@npm:^27.5.1": + version: 27.5.1 + resolution: "@jest/globals@npm:27.5.1" + dependencies: + "@jest/environment": ^27.5.1 + "@jest/types": ^27.5.1 + expect: ^27.5.1 + checksum: 087f97047e9dcf555f76fe2ce54aee681e005eaa837a0c0c2d251df6b6412c892c9df54cb871b180342114389a5ff895a4e52e6e6d3d0015bf83c02a54f64c3c + languageName: node + linkType: hard + +"@jest/reporters@npm:^27.5.1": + version: 27.5.1 + resolution: "@jest/reporters@npm:27.5.1" + dependencies: + "@bcoe/v8-coverage": ^0.2.3 + "@jest/console": ^27.5.1 + "@jest/test-result": ^27.5.1 + "@jest/transform": ^27.5.1 + "@jest/types": ^27.5.1 + "@types/node": "*" + chalk: ^4.0.0 + collect-v8-coverage: ^1.0.0 + exit: ^0.1.2 + glob: ^7.1.2 + 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-haste-map: ^27.5.1 + jest-resolve: ^27.5.1 + jest-util: ^27.5.1 + jest-worker: ^27.5.1 + slash: ^3.0.0 + source-map: ^0.6.0 + string-length: ^4.0.1 + terminal-link: ^2.0.0 + v8-to-istanbul: ^8.1.0 + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + checksum: faba5eafb86e62b62e152cafc8812d56308f9d1e8b77f3a7dcae4a8803a20a60a0909cc43ed73363ef649bf558e4fb181c7a336d144c89f7998279d1882bb69e + languageName: node + linkType: hard + +"@jest/source-map@npm:^27.5.1": + version: 27.5.1 + resolution: "@jest/source-map@npm:27.5.1" + dependencies: + callsites: ^3.0.0 + graceful-fs: ^4.2.9 + source-map: ^0.6.0 + checksum: 4fb1e743b602841babf7e22bd84eca34676cb05d4eb3b604cae57fc59e406099f5ac759ac1a0d04d901237d143f0f4f234417306e823bde732a1d19982230862 + languageName: node + linkType: hard + +"@jest/test-result@npm:^27.5.1": + version: 27.5.1 + resolution: "@jest/test-result@npm:27.5.1" + dependencies: + "@jest/console": ^27.5.1 + "@jest/types": ^27.5.1 + "@types/istanbul-lib-coverage": ^2.0.0 + collect-v8-coverage: ^1.0.0 + checksum: 338f7c509d6a3bc6d7dd7388c8f6f548b87638e171dc1fddfedcacb4e8950583288832223ba688058cbcf874b937d22bdc0fa88f79f5fc666f77957e465c06a5 + languageName: node + linkType: hard + +"@jest/test-sequencer@npm:^27.5.1": + version: 27.5.1 + resolution: "@jest/test-sequencer@npm:27.5.1" + dependencies: + "@jest/test-result": ^27.5.1 + graceful-fs: ^4.2.9 + jest-haste-map: ^27.5.1 + jest-runtime: ^27.5.1 + checksum: f21f9c8bb746847f7f89accfd29d6046eec1446f0b54e4694444feaa4df379791f76ef0f5a4360aafcbc73b50bc979f68b8a7620de404019d3de166be6720cb0 + languageName: node + linkType: hard + +"@jest/transform@npm:^27.5.1": + version: 27.5.1 + resolution: "@jest/transform@npm:27.5.1" + dependencies: + "@babel/core": ^7.1.0 + "@jest/types": ^27.5.1 + 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: ^27.5.1 + jest-regex-util: ^27.5.1 + jest-util: ^27.5.1 + micromatch: ^4.0.4 + pirates: ^4.0.4 + slash: ^3.0.0 + source-map: ^0.6.1 + write-file-atomic: ^3.0.0 + checksum: a22079121aedea0f20a03a9c026be971f7b92adbfb4d5fd1fb67be315741deac4f056936d7c72a53b24aa5a1071bc942c003925fd453bf3f6a0ae5da6384e137 + languageName: node + linkType: hard + +"@jest/types@npm:^27.5.1": + version: 27.5.1 + resolution: "@jest/types@npm:27.5.1" + dependencies: + "@types/istanbul-lib-coverage": ^2.0.0 + "@types/istanbul-reports": ^3.0.0 + "@types/node": "*" + "@types/yargs": ^16.0.0 + chalk: ^4.0.0 + checksum: d1f43cc946d87543ddd79d49547aab2399481d34025d5c5f2025d3d99c573e1d9832fa83cef25e9d9b07a8583500229d15bbb07b8e233d127d911d133e2f14b1 + languageName: node + linkType: hard + +"@jridgewell/gen-mapping@npm:^0.1.0": + version: 0.1.1 + resolution: "@jridgewell/gen-mapping@npm:0.1.1" + dependencies: + "@jridgewell/set-array": ^1.0.0 + "@jridgewell/sourcemap-codec": ^1.4.10 + checksum: 3bcc21fe786de6ffbf35c399a174faab05eb23ce6a03e8769569de28abbf4facc2db36a9ddb0150545ae23a8d35a7cf7237b2aa9e9356a7c626fb4698287d5cc + languageName: node + linkType: hard + +"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2": + version: 0.3.2 + resolution: "@jridgewell/gen-mapping@npm:0.3.2" + dependencies: + "@jridgewell/set-array": ^1.0.1 + "@jridgewell/sourcemap-codec": ^1.4.10 + "@jridgewell/trace-mapping": ^0.3.9 + checksum: 1832707a1c476afebe4d0fbbd4b9434fdb51a4c3e009ab1e9938648e21b7a97049fa6009393bdf05cab7504108413441df26d8a3c12193996e65493a4efb6882 languageName: node linkType: hard @@ -891,6 +2421,23 @@ __metadata: languageName: node linkType: hard +"@jridgewell/set-array@npm:^1.0.0, @jridgewell/set-array@npm:^1.0.1": + version: 1.1.2 + resolution: "@jridgewell/set-array@npm:1.1.2" + checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e + languageName: node + linkType: hard + +"@jridgewell/source-map@npm:^0.3.2": + version: 0.3.2 + resolution: "@jridgewell/source-map@npm:0.3.2" + dependencies: + "@jridgewell/gen-mapping": ^0.3.0 + "@jridgewell/trace-mapping": ^0.3.9 + checksum: 1b83f0eb944e77b70559a394d5d3b3f98a81fcc186946aceb3ef42d036762b52ef71493c6c0a3b7c1d2f08785f53ba2df1277fe629a06e6109588ff4cdcf7482 + languageName: node + linkType: hard + "@jridgewell/sourcemap-codec@npm:^1.4.10": version: 1.4.14 resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" @@ -908,6 +2455,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/trace-mapping@npm:^0.3.9": + version: 0.3.15 + resolution: "@jridgewell/trace-mapping@npm:0.3.15" + dependencies: + "@jridgewell/resolve-uri": ^3.0.3 + "@jridgewell/sourcemap-codec": ^1.4.10 + checksum: 38917e9c2b014d469a9f51c016ed506acbe44dd16ec2f6f99b553ebf3764d22abadbf992f2367b6d2b3511f3eae8ed3a8963f6c1030093fda23efd35ecab2bae + languageName: node + linkType: hard + "@metamask/eth-sig-util@npm:^4.0.0": version: 4.0.1 resolution: "@metamask/eth-sig-util@npm:4.0.1" @@ -962,7 +2519,7 @@ __metadata: languageName: node linkType: hard -"@nomicfoundation/ethereumjs-block@npm:^4.0.0, @nomicfoundation/ethereumjs-block@npm:^4.0.0-rc.3": +"@nomicfoundation/ethereumjs-block@npm:^4.0.0": version: 4.0.0 resolution: "@nomicfoundation/ethereumjs-block@npm:4.0.0" dependencies: @@ -976,7 +2533,7 @@ __metadata: languageName: node linkType: hard -"@nomicfoundation/ethereumjs-blockchain@npm:^6.0.0, @nomicfoundation/ethereumjs-blockchain@npm:^6.0.0-rc.3": +"@nomicfoundation/ethereumjs-blockchain@npm:^6.0.0": version: 6.0.0 resolution: "@nomicfoundation/ethereumjs-blockchain@npm:6.0.0" dependencies: @@ -996,7 +2553,7 @@ __metadata: languageName: node linkType: hard -"@nomicfoundation/ethereumjs-common@npm:^3.0.0, @nomicfoundation/ethereumjs-common@npm:^3.0.0-rc.3": +"@nomicfoundation/ethereumjs-common@npm:^3.0.0": version: 3.0.0 resolution: "@nomicfoundation/ethereumjs-common@npm:3.0.0" dependencies: @@ -1020,7 +2577,7 @@ __metadata: languageName: node linkType: hard -"@nomicfoundation/ethereumjs-evm@npm:^1.0.0, @nomicfoundation/ethereumjs-evm@npm:^1.0.0-rc.3": +"@nomicfoundation/ethereumjs-evm@npm:^1.0.0": version: 1.0.0 resolution: "@nomicfoundation/ethereumjs-evm@npm:1.0.0" dependencies: @@ -1036,7 +2593,7 @@ __metadata: languageName: node linkType: hard -"@nomicfoundation/ethereumjs-rlp@npm:^4.0.0, @nomicfoundation/ethereumjs-rlp@npm:^4.0.0-beta.2, @nomicfoundation/ethereumjs-rlp@npm:^4.0.0-rc.3": +"@nomicfoundation/ethereumjs-rlp@npm:^4.0.0, @nomicfoundation/ethereumjs-rlp@npm:^4.0.0-beta.2": version: 4.0.0 resolution: "@nomicfoundation/ethereumjs-rlp@npm:4.0.0" bin: @@ -1045,7 +2602,7 @@ __metadata: languageName: node linkType: hard -"@nomicfoundation/ethereumjs-statemanager@npm:^1.0.0, @nomicfoundation/ethereumjs-statemanager@npm:^1.0.0-rc.3": +"@nomicfoundation/ethereumjs-statemanager@npm:^1.0.0": version: 1.0.0 resolution: "@nomicfoundation/ethereumjs-statemanager@npm:1.0.0" dependencies: @@ -1060,7 +2617,7 @@ __metadata: languageName: node linkType: hard -"@nomicfoundation/ethereumjs-trie@npm:^5.0.0, @nomicfoundation/ethereumjs-trie@npm:^5.0.0-rc.3": +"@nomicfoundation/ethereumjs-trie@npm:^5.0.0": version: 5.0.0 resolution: "@nomicfoundation/ethereumjs-trie@npm:5.0.0" dependencies: @@ -1072,7 +2629,7 @@ __metadata: languageName: node linkType: hard -"@nomicfoundation/ethereumjs-tx@npm:^4.0.0, @nomicfoundation/ethereumjs-tx@npm:^4.0.0-rc.3": +"@nomicfoundation/ethereumjs-tx@npm:^4.0.0": version: 4.0.0 resolution: "@nomicfoundation/ethereumjs-tx@npm:4.0.0" dependencies: @@ -1084,7 +2641,7 @@ __metadata: languageName: node linkType: hard -"@nomicfoundation/ethereumjs-util@npm:^8.0.0, @nomicfoundation/ethereumjs-util@npm:^8.0.0-rc.3": +"@nomicfoundation/ethereumjs-util@npm:^8.0.0": version: 8.0.0 resolution: "@nomicfoundation/ethereumjs-util@npm:8.0.0" dependencies: @@ -1094,7 +2651,7 @@ __metadata: languageName: node linkType: hard -"@nomicfoundation/ethereumjs-vm@npm:^6.0.0-rc.3": +"@nomicfoundation/ethereumjs-vm@npm:^6.0.0": version: 6.0.0 resolution: "@nomicfoundation/ethereumjs-vm@npm:6.0.0" dependencies: @@ -1344,6 +2901,46 @@ __metadata: languageName: node linkType: hard +"@rollup/plugin-typescript@npm:^8.3.0": + version: 8.5.0 + resolution: "@rollup/plugin-typescript@npm:8.5.0" + dependencies: + "@rollup/pluginutils": ^3.1.0 + resolve: ^1.17.0 + peerDependencies: + rollup: ^2.14.0 + tslib: "*" + typescript: ">=3.7.0" + peerDependenciesMeta: + tslib: + optional: true + checksum: 2f100a73cdeb9bf82feaf8665fe791dabf5dcc17f6e727eb7b1825e7c7cf815ccd3f79f9f43ca53d7806c50686565c71f35fffcfc773b811a5c1e39eab167529 + languageName: node + linkType: hard + +"@rollup/pluginutils@npm:^3.1.0": + version: 3.1.0 + resolution: "@rollup/pluginutils@npm:3.1.0" + dependencies: + "@types/estree": 0.0.39 + estree-walker: ^1.0.1 + picomatch: ^2.2.2 + peerDependencies: + rollup: ^1.20.0||^2.0.0 + checksum: 8be16e27863c219edbb25a4e6ec2fe0e1e451d9e917b6a43cf2ae5bc025a6b8faaa40f82a6e53b66d0de37b58ff472c6c3d57a83037ae635041f8df959d6d9aa + languageName: node + linkType: hard + +"@rollup/pluginutils@npm:^4.1.2": + version: 4.2.1 + resolution: "@rollup/pluginutils@npm:4.2.1" + dependencies: + estree-walker: ^2.0.1 + picomatch: ^2.2.2 + checksum: 6bc41f22b1a0f1efec3043899e4d3b6b1497b3dea4d94292d8f83b4cf07a1073ecbaedd562a22d11913ff7659f459677b01b09e9598a98936e746780ecc93a12 + languageName: node + linkType: hard + "@scure/base@npm:~1.1.0": version: 1.1.1 resolution: "@scure/base@npm:1.1.1" @@ -1372,32 +2969,36 @@ __metadata: languageName: node linkType: hard -"@semaphore-protocol/group@npm:2.2.0": - version: 2.2.0 - resolution: "@semaphore-protocol/group@npm:2.2.0" +"@semaphore-protocol/group@2.2.0, @semaphore-protocol/group@workspace:packages/group": + version: 0.0.0-use.local + resolution: "@semaphore-protocol/group@workspace:packages/group" dependencies: "@zk-kit/incremental-merkle-tree": 1.0.0 circomlibjs: 0.0.8 - checksum: e7e509399277bfda2e850c0adfacaa9fb25a99db2727227066448324ffe5445fecfacac1aae26b68b4bd1f305b5748defb996368a87e33d979d3b855d76b8b78 - languageName: node - linkType: hard + rollup-plugin-cleanup: ^3.2.1 + rollup-plugin-typescript2: ^0.31.2 + typedoc: ^0.22.11 + languageName: unknown + linkType: soft -"@semaphore-protocol/identity@npm:2.0.0": - version: 2.0.0 - resolution: "@semaphore-protocol/identity@npm:2.0.0" +"@semaphore-protocol/identity@2.0.0, @semaphore-protocol/identity@workspace:packages/identity": + version: 0.0.0-use.local + resolution: "@semaphore-protocol/identity@workspace:packages/identity" dependencies: "@ethersproject/bignumber": ^5.5.0 "@ethersproject/random": ^5.5.1 "@ethersproject/sha2": ^5.6.1 "@ethersproject/strings": ^5.6.1 circomlibjs: 0.0.8 - checksum: b087f43ca0cc1ff0a89b44c06df397c0b921e2bd7b29fa507a10f1588811a5b5c0e896db0483538f643486f8591de22dde16eaa16ca1a198f28fbaab594b0408 - languageName: node - linkType: hard + rollup-plugin-cleanup: ^3.2.1 + rollup-plugin-typescript2: ^0.31.2 + typedoc: ^0.22.11 + languageName: unknown + linkType: soft -"@semaphore-protocol/proof@npm:2.3.1": - version: 2.3.1 - resolution: "@semaphore-protocol/proof@npm:2.3.1" +"@semaphore-protocol/proof@2.3.1, @semaphore-protocol/proof@workspace:packages/proof": + version: 0.0.0-use.local + resolution: "@semaphore-protocol/proof@workspace:packages/proof" dependencies: "@ethersproject/bytes": ^5.7.0 "@ethersproject/solidity": ^5.5.0 @@ -1406,10 +3007,26 @@ __metadata: "@semaphore-protocol/identity": 2.0.0 "@zk-kit/incremental-merkle-tree": 0.4.3 circomlibjs: 0.0.8 + download: ^8.0.0 + ffjavascript: ^0.2.54 + rollup-plugin-cleanup: ^3.2.1 + rollup-plugin-typescript2: ^0.31.2 snarkjs: ^0.4.13 - checksum: 5c7204d48c3dedf0ad4b33be6fe88e8dca0270b1cc7e56e073ae3ce7d8d4152cb7c3c361a51ff5a9fa9f4e8e61b806f4651167f4311c9c3397a05be0bc32257e - languageName: node - linkType: hard + typedoc: ^0.22.11 + languageName: unknown + linkType: soft + +"@semaphore-protocol/subgraph@workspace:packages/subgraph": + version: 0.0.0-use.local + resolution: "@semaphore-protocol/subgraph@workspace:packages/subgraph" + dependencies: + axios: ^0.27.2 + rollup-plugin-cleanup: ^3.2.1 + rollup-plugin-terser: ^7.0.2 + rollup-plugin-typescript2: ^0.31.2 + typedoc: ^0.22.11 + languageName: unknown + linkType: soft "@sentry/core@npm:5.30.0": version: 5.30.0 @@ -1514,6 +3131,24 @@ __metadata: languageName: node linkType: hard +"@sinonjs/commons@npm:^1.7.0": + version: 1.8.3 + resolution: "@sinonjs/commons@npm:1.8.3" + dependencies: + type-detect: 4.0.8 + checksum: 6159726db5ce6bf9f2297f8427f7ca5b3dff45b31e5cee23496f1fa6ef0bb4eab878b23fb2c5e6446381f6a66aba4968ef2fc255c1180d753d4b8c271636a2e5 + languageName: node + linkType: hard + +"@sinonjs/fake-timers@npm:^8.0.1": + version: 8.1.0 + resolution: "@sinonjs/fake-timers@npm:8.1.0" + dependencies: + "@sinonjs/commons": ^1.7.0 + checksum: 09b5a158ce013a6c37613258bad79ca4efeb99b1f59c41c73cca36cac00b258aefcf46eeea970fccf06b989414d86fe9f54c1102272c0c3bdd51a313cea80949 + languageName: node + linkType: hard + "@solidity-parser/parser@npm:^0.14.0, @solidity-parser/parser@npm:^0.14.1, @solidity-parser/parser@npm:^0.14.3": version: 0.14.3 resolution: "@solidity-parser/parser@npm:0.14.3" @@ -1550,6 +3185,13 @@ __metadata: languageName: node linkType: hard +"@tootallnate/once@npm:1": + version: 1.1.2 + resolution: "@tootallnate/once@npm:1.1.2" + checksum: e1fb1bbbc12089a0cb9433dc290f97bddd062deadb6178ce9bcb93bb7c1aecde5e60184bc7065aec42fe1663622a213493c48bbd4972d931aae48315f18e1be9 + languageName: node + linkType: hard + "@tootallnate/once@npm:2": version: 2.0.0 resolution: "@tootallnate/once@npm:2.0.0" @@ -1645,11 +3287,10 @@ __metadata: linkType: hard "@typechain/hardhat@npm:^6.0.0": - version: 6.1.2 - resolution: "@typechain/hardhat@npm:6.1.2" + version: 6.1.3 + resolution: "@typechain/hardhat@npm:6.1.3" dependencies: fs-extra: ^9.1.0 - lodash: ^4.17.15 peerDependencies: "@ethersproject/abi": ^5.4.7 "@ethersproject/providers": ^5.4.7 @@ -1657,7 +3298,7 @@ __metadata: ethers: ^5.4.7 hardhat: ^2.9.9 typechain: ^8.1.0 - checksum: 875753de831825c95c30e6792949f38f69fcee888c1936042414c8d030ecc181817cc0f5cbf6f1764f30779b5f840201eb29addda45713fd0b58a71693102a2c + checksum: e386fc755622e3ad8446ac267a43644481f2f982542055ab5678cb03e8f7cdbb67633ab3a0e9bc59d9c8187fd70738f2d1edda9830bbb466f52ff47142e7e216 languageName: node linkType: hard @@ -1668,6 +3309,47 @@ __metadata: languageName: node linkType: hard +"@types/babel__core@npm:^7.0.0, @types/babel__core@npm:^7.1.14": + version: 7.1.19 + resolution: "@types/babel__core@npm:7.1.19" + dependencies: + "@babel/parser": ^7.1.0 + "@babel/types": ^7.0.0 + "@types/babel__generator": "*" + "@types/babel__template": "*" + "@types/babel__traverse": "*" + checksum: 8c9fa87a1c2224cbec251683a58bebb0d74c497118034166aaa0491a4e2627998a6621fc71f8a60ffd27d9c0c52097defedf7637adc6618d0331c15adb302338 + languageName: node + linkType: hard + +"@types/babel__generator@npm:*": + version: 7.6.4 + resolution: "@types/babel__generator@npm:7.6.4" + dependencies: + "@babel/types": ^7.0.0 + checksum: 20effbbb5f8a3a0211e95959d06ae70c097fb6191011b73b38fe86deebefad8e09ee014605e0fd3cdaedc73d158be555866810e9166e1f09e4cfd880b874dcb0 + languageName: node + linkType: hard + +"@types/babel__template@npm:*": + version: 7.4.1 + resolution: "@types/babel__template@npm:7.4.1" + dependencies: + "@babel/parser": ^7.1.0 + "@babel/types": ^7.0.0 + checksum: 649fe8b42c2876be1fd28c6ed9b276f78152d5904ec290b6c861d9ef324206e0a5c242e8305c421ac52ecf6358fa7e32ab7a692f55370484825c1df29b1596ee + languageName: node + linkType: hard + +"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.4, @types/babel__traverse@npm:^7.0.6": + version: 7.18.1 + resolution: "@types/babel__traverse@npm:7.18.1" + dependencies: + "@babel/types": ^7.3.0 + checksum: a7158b13e5e4b844565217d04a0a09c1cf04e67de90972318960028effbd5e7400f2567b72c5f790acffdab9b4adce8d68f435a2f0c2b16e2c9c45994ace98f2 + languageName: node + linkType: hard + "@types/bn.js@npm:*, @types/bn.js@npm:^5.1.0": version: 5.1.1 resolution: "@types/bn.js@npm:5.1.1" @@ -1734,6 +3416,13 @@ __metadata: languageName: node linkType: hard +"@types/estree@npm:0.0.39": + version: 0.0.39 + resolution: "@types/estree@npm:0.0.39" + checksum: 412fb5b9868f2c418126451821833414189b75cc6bf84361156feed733e3d92ec220b9d74a89e52722e03d5e241b2932732711b7497374a404fad49087adc248 + languageName: node + linkType: hard + "@types/form-data@npm:0.0.33": version: 0.0.33 resolution: "@types/form-data@npm:0.0.33" @@ -1753,7 +3442,7 @@ __metadata: languageName: node linkType: hard -"@types/glob@npm:^7.1.1": +"@types/glob@npm:^7.1.1, @types/glob@npm:^7.2.0": version: 7.2.0 resolution: "@types/glob@npm:7.2.0" dependencies: @@ -1772,6 +3461,15 @@ __metadata: languageName: node linkType: hard +"@types/graceful-fs@npm:^4.1.2": + version: 4.1.5 + resolution: "@types/graceful-fs@npm:4.1.5" + dependencies: + "@types/node": "*" + checksum: d076bb61f45d0fc42dee496ef8b1c2f8742e15d5e47e90e20d0243386e426c04d4efd408a48875ab432f7960b4ce3414db20ed0fbbfc7bcc89d84e574f6e045a + languageName: node + linkType: hard + "@types/http-cache-semantics@npm:*": version: 4.0.1 resolution: "@types/http-cache-semantics@npm:4.0.1" @@ -1779,6 +3477,41 @@ __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:^27.4.0": + version: 27.5.2 + resolution: "@types/jest@npm:27.5.2" + dependencies: + jest-matcher-utils: ^27.0.0 + pretty-format: ^27.0.0 + checksum: 7e11c6826aa429ad990dc262e4e4b54aa36573287fddf15773e4137f07d11d3105f0dd9f1baff73252160a057df23f5529bb83b1bf83cd3f45f9460a5ca5c22e + languageName: node + linkType: hard + "@types/json-schema@npm:^7.0.9": version: 7.0.11 resolution: "@types/json-schema@npm:7.0.11" @@ -1786,6 +3519,13 @@ __metadata: languageName: node linkType: hard +"@types/json5@npm:^0.0.29": + version: 0.0.29 + resolution: "@types/json5@npm:0.0.29" + checksum: e60b153664572116dfea673c5bda7778dbff150498f44f998e34b5886d8afc47f16799280e4b6e241c0472aef1bc36add771c569c68fc5125fc2ae519a3eb9ac + languageName: node + linkType: hard + "@types/keyv@npm:*, @types/keyv@npm:^3.1.1": version: 3.1.4 resolution: "@types/keyv@npm:3.1.4" @@ -1843,9 +3583,9 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:>=12": - version: 18.7.16 - resolution: "@types/node@npm:18.7.16" - checksum: 01a3d35c764a3f0e7370b56e1ad4203731131883c65784e020009014171b3f53c4649cde6c7aa4f1026b907ee87ef6ae6ece2bc518151dc7b81100fe8b1db3ad + version: 18.7.18 + resolution: "@types/node@npm:18.7.18" + checksum: 8aec61f0f96e2a69ce51f1f40f949ca578bbb4fe05d7c0b8ce3aeeb848e90f755837f17f6ac132ca404d974fe9b2974150ad3b4984fc9dc7c3ceddb10bae0167 languageName: node linkType: hard @@ -1864,13 +3604,13 @@ __metadata: linkType: hard "@types/node@npm:^14.0.0": - version: 14.18.28 - resolution: "@types/node@npm:14.18.28" - checksum: 44225b3d8f13f4aba9a7bffec8dbc9be8fd396d26b8a1f58b1389da83fdc7485edb5642639e23b34f0efa349dafe4df618294122f0b39c8726df2b9e11413768 + version: 14.18.29 + resolution: "@types/node@npm:14.18.29" + checksum: 43481c1c066dd01578ff137f437a8a901f8fcd3cdc068c36047c444861ab4aac8a62fb4eb6d03738df02006336c90619bfc7860d4e5b259916956942d2e68e88 languageName: node linkType: hard -"@types/node@npm:^17.0.12": +"@types/node@npm:^17.0.12, @types/node@npm:^17.0.9": version: 17.0.45 resolution: "@types/node@npm:17.0.45" checksum: aa04366b9103b7d6cfd6b2ef64182e0eaa7d4462c3f817618486ea0422984c51fc69fd0d436eae6c9e696ddfdbec9ccaa27a917f7c2e8c75c5d57827fe3d95e8 @@ -1907,7 +3647,7 @@ __metadata: languageName: node linkType: hard -"@types/prettier@npm:^2.1.1": +"@types/prettier@npm:^2.1.1, @types/prettier@npm:^2.1.5": version: 2.7.0 resolution: "@types/prettier@npm:2.7.0" checksum: bf5d0c7c1270909b39399539ac106d20ddaa85fe92eb1d59922dc99159604b4f8d5e41b0045fb29c8011585cf5bca2350b7441ef3d9816c08bd0e10ebd4b31d4 @@ -1984,6 +3724,13 @@ __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/underscore@npm:*": version: 1.11.4 resolution: "@types/underscore@npm:1.11.4" @@ -2001,13 +3748,29 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^5.10.1": - version: 5.36.2 - resolution: "@typescript-eslint/eslint-plugin@npm:5.36.2" +"@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:^16.0.0": + version: 16.0.4 + resolution: "@types/yargs@npm:16.0.4" + dependencies: + "@types/yargs-parser": "*" + checksum: caa21d2c957592fe2184a8368c8cbe5a82a6c2e2f2893722e489f842dc5963293d2f3120bc06fe3933d60a3a0d1e2eb269649fd6b1947fe1820f8841ba611dd9 + languageName: node + linkType: hard + +"@typescript-eslint/eslint-plugin@npm:^5.9.1": + version: 5.37.0 + resolution: "@typescript-eslint/eslint-plugin@npm:5.37.0" dependencies: - "@typescript-eslint/scope-manager": 5.36.2 - "@typescript-eslint/type-utils": 5.36.2 - "@typescript-eslint/utils": 5.36.2 + "@typescript-eslint/scope-manager": 5.37.0 + "@typescript-eslint/type-utils": 5.37.0 + "@typescript-eslint/utils": 5.37.0 debug: ^4.3.4 functional-red-black-tree: ^1.0.1 ignore: ^5.2.0 @@ -2020,43 +3783,54 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: edcd9fcecdeb22a689b421cafe3b7adc859bf2fd6227aecdd7412c319c808e7bab063c8f94af32116cfc971962f9780d181cb0a4aa999951c2d2be1f84c6c376 + checksum: 9ef75628fcd6f5425002d0172514ad27e51c6ca438aba65ad445be3c63187de3cb294bcc994bd2859dff4fc0221a22da497b34990e8165dcfd1fec33d7d17fb3 + languageName: node + linkType: hard + +"@typescript-eslint/experimental-utils@npm:^5.0.0": + version: 5.37.0 + resolution: "@typescript-eslint/experimental-utils@npm:5.37.0" + dependencies: + "@typescript-eslint/utils": 5.37.0 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 1a9633118a481f7a89a00797abc57dc1fb046ff650f44c3a2a1f796a4def4ab3a9fc6c6b83c9e803e4b6251f4098fad437bb6e2082327a6faa3e200aa1e475ec languageName: node linkType: hard -"@typescript-eslint/parser@npm:^5.10.1": - version: 5.36.2 - resolution: "@typescript-eslint/parser@npm:5.36.2" +"@typescript-eslint/parser@npm:^5.9.1": + version: 5.37.0 + resolution: "@typescript-eslint/parser@npm:5.37.0" dependencies: - "@typescript-eslint/scope-manager": 5.36.2 - "@typescript-eslint/types": 5.36.2 - "@typescript-eslint/typescript-estree": 5.36.2 + "@typescript-eslint/scope-manager": 5.37.0 + "@typescript-eslint/types": 5.37.0 + "@typescript-eslint/typescript-estree": 5.37.0 debug: ^4.3.4 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: d6cc22cbc7aacb5ecebf55eb1d681cb6b964b108e147b418295c3e48701a77768cff128c16da421ae50eabb9f1296ecec7fa3cc5f2ccb63a3febf79f98b4195f + checksum: 33343e27c9602820d43ee12de9797365d97a5cf3f716e750fa44de760f2a2c6800f3bc4fa54931ac70c0e0ede77a92224f8151da7f30fed3bf692a029d6659af languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:5.36.2": - version: 5.36.2 - resolution: "@typescript-eslint/scope-manager@npm:5.36.2" +"@typescript-eslint/scope-manager@npm:5.37.0": + version: 5.37.0 + resolution: "@typescript-eslint/scope-manager@npm:5.37.0" dependencies: - "@typescript-eslint/types": 5.36.2 - "@typescript-eslint/visitor-keys": 5.36.2 - checksum: 93ff655f7c237c88ec6dc5911202dd8f81bd8909b27f1a758a9d77e9791040f1ee6fe2891314bde75c808ce586246e98003a1b1396937b0312f2440016dea751 + "@typescript-eslint/types": 5.37.0 + "@typescript-eslint/visitor-keys": 5.37.0 + checksum: 1c439e21ffa63ebaadb8c8363e9d668132a835a28203e5b779366bfa56772f332e5dedb50d63dffb836839b9d9c4e66aa9e3ea47b8c59465b18a0cbd063ec7a3 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:5.36.2": - version: 5.36.2 - resolution: "@typescript-eslint/type-utils@npm:5.36.2" +"@typescript-eslint/type-utils@npm:5.37.0": + version: 5.37.0 + resolution: "@typescript-eslint/type-utils@npm:5.37.0" dependencies: - "@typescript-eslint/typescript-estree": 5.36.2 - "@typescript-eslint/utils": 5.36.2 + "@typescript-eslint/typescript-estree": 5.37.0 + "@typescript-eslint/utils": 5.37.0 debug: ^4.3.4 tsutils: ^3.21.0 peerDependencies: @@ -2064,23 +3838,23 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: c202b7d2cd08ed7f7d1ad7e430e9e1596478e147f0d485d02babfda0211c55fa950de1dc4d1c950008a8a047a31c1e982e97fe5558f93d496830eb9d9532bc71 + checksum: 79dac78eefdbdb3c168da6b303381461af3523e2b45fdeb821eb05e6a5cac797a8850e1dd9e1b6cd1a7c22408acfa2a09854a0f85ff038518c312db8eae9aa4f languageName: node linkType: hard -"@typescript-eslint/types@npm:5.36.2": - version: 5.36.2 - resolution: "@typescript-eslint/types@npm:5.36.2" - checksum: 736cb8a76b58f2f9a7d066933094c5510ffe31479ea8b804a829ec85942420f1b55e0eb2688fbdaaaa9c0e5b3b590fb8f14bbd745353696b4fd33fda620d417b +"@typescript-eslint/types@npm:5.37.0": + version: 5.37.0 + resolution: "@typescript-eslint/types@npm:5.37.0" + checksum: 899e59e7775fa95c2d9fcac5cc02cc49d83af5f1ffc706df495046c3b3733f79d5489568b01bfaf8c9ae4636e057056866adc783113036f774580086d0189f21 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.36.2": - version: 5.36.2 - resolution: "@typescript-eslint/typescript-estree@npm:5.36.2" +"@typescript-eslint/typescript-estree@npm:5.37.0": + version: 5.37.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.37.0" dependencies: - "@typescript-eslint/types": 5.36.2 - "@typescript-eslint/visitor-keys": 5.36.2 + "@typescript-eslint/types": 5.37.0 + "@typescript-eslint/visitor-keys": 5.37.0 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -2089,33 +3863,33 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 2827ff57a114b6107ea6d555f3855007133b08a7c2bafba0cfa0c935d8b99fd7b49e982d48cccc1c5ba550d95748d0239f5e2109893f12a165d76ed64a0d261b + checksum: 80365a50fa11ed39bf54d9ef06e264fbbf3bdbcc55b7d7d555ef0be915edae40ec30e98d08b3f6ef048e1874450cbcb1e7d9f429d4f420dacbbde45d3376a7bc languageName: node linkType: hard -"@typescript-eslint/utils@npm:5.36.2": - version: 5.36.2 - resolution: "@typescript-eslint/utils@npm:5.36.2" +"@typescript-eslint/utils@npm:5.37.0": + version: 5.37.0 + resolution: "@typescript-eslint/utils@npm:5.37.0" dependencies: "@types/json-schema": ^7.0.9 - "@typescript-eslint/scope-manager": 5.36.2 - "@typescript-eslint/types": 5.36.2 - "@typescript-eslint/typescript-estree": 5.36.2 + "@typescript-eslint/scope-manager": 5.37.0 + "@typescript-eslint/types": 5.37.0 + "@typescript-eslint/typescript-estree": 5.37.0 eslint-scope: ^5.1.1 eslint-utils: ^3.0.0 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 45356cf55a8733e3ab1f2c3c19cdaefdb79857e35eb1433c29b81f3df071e9cef8a286bc407abe243889a21d9e793e999f92f03b9c727a0fac1c17a48e64c42a + checksum: dc6c19ab07b50113f6fa3722518b2f31ce04036ec018855587d4c467108cb4e3c2866e54ed2e18ce61d1e7d0eaab24f94ee39574031b7d8e1c05e4b83ff84ef2 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:5.36.2": - version: 5.36.2 - resolution: "@typescript-eslint/visitor-keys@npm:5.36.2" +"@typescript-eslint/visitor-keys@npm:5.37.0": + version: 5.37.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.37.0" dependencies: - "@typescript-eslint/types": 5.36.2 + "@typescript-eslint/types": 5.37.0 eslint-visitor-keys: ^3.3.0 - checksum: 87ccdcfa5cdedaa3a1aac30d656969f4f5910b62bcaacdf80a514dbf0cbbd8e79b55f8e987eab34cc79ece8ce4b8c19d5caf8b0afb74e0b0d7ab39fb29aa8eba + checksum: d6193550f77413aead0cb267e058df80b80a488c8fb4e39beb5f0a70b971c41682a6391903fbc5f3dd859a872016288c434d631b8efc3ac5a04edbdb7b63b5f6 languageName: node linkType: hard @@ -2126,6 +3900,17 @@ __metadata: languageName: node linkType: hard +"@yarn-tool/resolve-package@npm:^1.0.40": + version: 1.0.47 + resolution: "@yarn-tool/resolve-package@npm:1.0.47" + dependencies: + pkg-dir: < 6 >= 5 + tslib: ^2 + upath2: ^3.1.13 + checksum: 86208b0881c9b262ee9545cc99deec7764f268d4b2fd82b4555d9ef3ec8cdc00a27c81e2c4fb01377052648353d40a515530caf319431637e1146bdd948947a6 + languageName: node + linkType: hard + "@yarnpkg/lockfile@npm:^1.1.0": version: 1.1.0 resolution: "@yarnpkg/lockfile@npm:1.1.0" @@ -2166,6 +3951,13 @@ __metadata: languageName: node linkType: hard +"abab@npm:^2.0.3, abab@npm:^2.0.5": + version: 2.0.6 + resolution: "abab@npm:2.0.6" + checksum: 6ffc1af4ff315066c62600123990d87551ceb0aafa01e6539da77b0f5987ac7019466780bf480f1787576d4385e3690c81ccc37cfda12819bf510b8ab47e5a3e + languageName: node + linkType: hard + "abbrev@npm:1": version: 1.1.1 resolution: "abbrev@npm:1.1.1" @@ -2257,6 +4049,16 @@ __metadata: languageName: node linkType: hard +"acorn-globals@npm:^6.0.0": + version: 6.0.0 + resolution: "acorn-globals@npm:6.0.0" + dependencies: + acorn: ^7.1.1 + acorn-walk: ^7.1.1 + checksum: 72d95e5b5e585f9acd019b993ab8bbba68bb3cbc9d9b5c1ebb3c2f1fe5981f11deababfb4949f48e6262f9c57878837f5958c0cca396f81023814680ca878042 + languageName: node + linkType: hard + "acorn-jsx@npm:^5.0.0, acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" @@ -2266,6 +4068,13 @@ __metadata: languageName: node linkType: hard +"acorn-walk@npm:^7.1.1": + version: 7.2.0 + resolution: "acorn-walk@npm:7.2.0" + checksum: 9252158a79b9d92f1bc0dd6acc0fcfb87a67339e84bcc301bb33d6078936d27e35d606b4d35626d2962cd43c256d6f27717e70cbe15c04fff999ab0b2260b21f + languageName: node + linkType: hard + "acorn-walk@npm:^8.1.1": version: 8.2.0 resolution: "acorn-walk@npm:8.2.0" @@ -2282,7 +4091,16 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.4.1, acorn@npm:^8.8.0": +"acorn@npm:^7.1.1": + version: 7.4.1 + resolution: "acorn@npm:7.4.1" + bin: + acorn: bin/acorn + checksum: 1860f23c2107c910c6177b7b7be71be350db9e1080d814493fae143ae37605189504152d1ba8743ba3178d0b37269ce1ffc42b101547fdc1827078f82671e407 + languageName: node + linkType: hard + +"acorn@npm:^8.2.4, acorn@npm:^8.4.1, acorn@npm:^8.5.0, acorn@npm:^8.8.0": version: 8.8.0 resolution: "acorn@npm:8.8.0" bin: @@ -2292,9 +4110,9 @@ __metadata: linkType: hard "address@npm:^1.0.1": - version: 1.2.0 - resolution: "address@npm:1.2.0" - checksum: 2ef3aa9d23bbe0f9f2745a634b16f3a2f2b18c43146c0913c7b26c8be410e20d59b8c3808d0bb7fe94d50fc2448b4b91e65dd9f33deb4aed53c14f0dedc3ddd8 + version: 1.2.1 + resolution: "address@npm:1.2.1" + checksum: e4c0f961464ccad09c3f7ed3a8d12f609354a87dd1ad379e43661e9684446fbf158be3edeef85e1590dfc6c88c0897c5908bc18f232eb86e43993a2ada5820fa languageName: node linkType: hard @@ -2477,10 +4295,17 @@ __metadata: languageName: node linkType: hard +"ansi-styles@npm:^5.0.0": + version: 5.2.0 + resolution: "ansi-styles@npm:5.2.0" + checksum: d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469 + languageName: node + linkType: hard + "ansi-styles@npm:^6.0.0": - version: 6.1.0 - resolution: "ansi-styles@npm:6.1.0" - checksum: 7a7f8528c07a9d20c3a92bccd2b6bc3bb4d26e5cb775c02826921477377bd495d615d61f710d56216344b6238d1d11ef2b0348e146c5b128715578bfb3217229 + version: 6.1.1 + resolution: "ansi-styles@npm:6.1.1" + checksum: f2b1ed658ead23caf77effe7b875960cacd70d1ebe47c830e191358b242d688cf52a28d55ef9b19d102f792e8c1dec34bd865db264f1c7f4f63dd3a5fa84677e languageName: node linkType: hard @@ -2500,7 +4325,7 @@ __metadata: languageName: node linkType: hard -"anymatch@npm:~3.1.1, anymatch@npm:~3.1.2": +"anymatch@npm:^3.0.3, anymatch@npm:~3.1.1, anymatch@npm:~3.1.2": version: 3.1.2 resolution: "anymatch@npm:3.1.2" dependencies: @@ -2626,6 +4451,19 @@ __metadata: languageName: node linkType: hard +"array-includes@npm:^3.1.4": + version: 3.1.5 + resolution: "array-includes@npm:3.1.5" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.19.5 + get-intrinsic: ^1.1.1 + is-string: ^1.0.7 + checksum: f6f24d834179604656b7bec3e047251d5cc87e9e87fab7c175c61af48e80e75acd296017abcde21fb52292ab6a2a449ab2ee37213ee48c8709f004d75983f9c5 + languageName: node + linkType: hard + "array-union@npm:^2.1.0": version: 2.1.0 resolution: "array-union@npm:2.1.0" @@ -2647,6 +4485,18 @@ __metadata: languageName: node linkType: hard +"array.prototype.flat@npm:^1.2.5": + version: 1.3.0 + resolution: "array.prototype.flat@npm:1.3.0" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.3 + es-abstract: ^1.19.2 + es-shim-unscopables: ^1.0.0 + checksum: 2a652b3e8dc0bebb6117e42a5ab5738af0203a14c27341d7bb2431467bdb4b348e2c5dc555dfcda8af0a5e4075c400b85311ded73861c87290a71a17c3e0a257 + languageName: node + linkType: hard + "array.prototype.reduce@npm:^1.0.4": version: 1.0.4 resolution: "array.prototype.reduce@npm:1.0.4" @@ -2829,6 +4679,16 @@ __metadata: languageName: node linkType: hard +"axios@npm:^0.27.2": + version: 0.27.2 + resolution: "axios@npm:0.27.2" + dependencies: + follow-redirects: ^1.14.9 + form-data: ^4.0.0 + checksum: 38cb7540465fe8c4102850c4368053c21683af85c5fdf0ea619f9628abbcb59415d1e22ebc8a6390d2bbc9b58a9806c874f139767389c862ec9b772235f06854 + languageName: node + linkType: hard + "b4a@npm:^1.0.1": version: 1.6.0 resolution: "b4a@npm:1.6.0" @@ -3027,6 +4887,24 @@ __metadata: languageName: node linkType: hard +"babel-jest@npm:^27.4.6, babel-jest@npm:^27.5.1": + version: 27.5.1 + resolution: "babel-jest@npm:27.5.1" + dependencies: + "@jest/transform": ^27.5.1 + "@jest/types": ^27.5.1 + "@types/babel__core": ^7.1.14 + babel-plugin-istanbul: ^6.1.1 + babel-preset-jest: ^27.5.1 + chalk: ^4.0.0 + graceful-fs: ^4.2.9 + slash: ^3.0.0 + peerDependencies: + "@babel/core": ^7.8.0 + checksum: 4e93e6e9fb996cc5f1505e924eb8e8cc7b25c294ba9629762a2715390f48af6a4c14dbb84cd9730013ac0e03267a5a9aa2fb6318c544489cda7f50f4e506def4 + languageName: node + linkType: hard + "babel-messages@npm:^6.23.0": version: 6.23.0 resolution: "babel-messages@npm:6.23.0" @@ -3045,6 +4923,76 @@ __metadata: languageName: node linkType: hard +"babel-plugin-dynamic-import-node@npm:^2.3.3": + version: 2.3.3 + resolution: "babel-plugin-dynamic-import-node@npm:2.3.3" + dependencies: + object.assign: ^4.1.0 + checksum: c9d24415bcc608d0db7d4c8540d8002ac2f94e2573d2eadced137a29d9eab7e25d2cbb4bc6b9db65cf6ee7430f7dd011d19c911a9a778f0533b4a05ce8292c9b + 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:^27.5.1": + version: 27.5.1 + resolution: "babel-plugin-jest-hoist@npm:27.5.1" + dependencies: + "@babel/template": ^7.3.3 + "@babel/types": ^7.3.3 + "@types/babel__core": ^7.0.0 + "@types/babel__traverse": ^7.0.6 + checksum: 709c17727aa8fd3be755d256fb514bf945a5c2ea6017f037d80280fc44ae5fe7dfeebf63d8412df53796455c2c216119d628d8cc90b099434fd819005943d058 + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs2@npm:^0.3.3": + version: 0.3.3 + resolution: "babel-plugin-polyfill-corejs2@npm:0.3.3" + dependencies: + "@babel/compat-data": ^7.17.7 + "@babel/helper-define-polyfill-provider": ^0.3.3 + semver: ^6.1.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7db3044993f3dddb3cc3d407bc82e640964a3bfe22de05d90e1f8f7a5cb71460011ab136d3c03c6c1ba428359ebf635688cd6205e28d0469bba221985f5c6179 + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs3@npm:^0.6.0": + version: 0.6.0 + resolution: "babel-plugin-polyfill-corejs3@npm:0.6.0" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.3.3 + core-js-compat: ^3.25.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 470bb8c59f7c0912bd77fe1b5a2e72f349b3f65bbdee1d60d6eb7e1f4a085c6f24b2dd5ab4ac6c2df6444a96b070ef6790eccc9edb6a2668c60d33133bfb62c6 + languageName: node + linkType: hard + +"babel-plugin-polyfill-regenerator@npm:^0.4.1": + version: 0.4.1 + resolution: "babel-plugin-polyfill-regenerator@npm:0.4.1" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.3.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ab0355efbad17d29492503230387679dfb780b63b25408990d2e4cf421012dae61d6199ddc309f4d2409ce4e9d3002d187702700dd8f4f8770ebbba651ed066c + languageName: node + linkType: hard + "babel-plugin-syntax-async-functions@npm:^6.8.0": version: 6.13.0 resolution: "babel-plugin-syntax-async-functions@npm:6.13.0" @@ -3341,6 +5289,28 @@ __metadata: 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-env@npm:^1.7.0": version: 1.7.0 resolution: "babel-preset-env@npm:1.7.0" @@ -3379,6 +5349,18 @@ __metadata: languageName: node linkType: hard +"babel-preset-jest@npm:^27.5.1": + version: 27.5.1 + resolution: "babel-preset-jest@npm:27.5.1" + dependencies: + babel-plugin-jest-hoist: ^27.5.1 + babel-preset-current-node-syntax: ^1.0.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 251bcea11c18fd9672fec104eadb45b43f117ceeb326fa7345ced778d4c1feab29343cd7a87a1dcfae4997d6c851a8b386d7f7213792da6e23b74f4443a8976d + languageName: node + linkType: hard + "babel-register@npm:^6.26.0": version: 6.26.0 resolution: "babel-register@npm:6.26.0" @@ -3548,18 +5530,18 @@ __metadata: linkType: hard "bigint-crypto-utils@npm:^3.0.23": - version: 3.1.5 - resolution: "bigint-crypto-utils@npm:3.1.5" + version: 3.1.6 + resolution: "bigint-crypto-utils@npm:3.1.6" dependencies: bigint-mod-arith: ^3.1.0 - checksum: 38c92711a62289bfcf9af06d19cee85e04cec7ac567bc22efc8b29a84d970df7d92fb9d28f8187107a723d1f9d8b189a2a9853456e41d623fd69499c9aa26b49 + checksum: 5fb427d0344b60e95a7916a128bdbda5581133f76e1f6fcfb967a1831b44ff48bbe9fd98d4e424f269927382b7fa485860552151184fe0c7e5a9ab2383c92bcd languageName: node linkType: hard "bigint-mod-arith@npm:^3.1.0": - version: 3.1.0 - resolution: "bigint-mod-arith@npm:3.1.0" - checksum: 2dc79460b9eb286d0b007ff8bd0fc1884904b6a13f8119c126efa7a2a6326dc0d668e13c7eb67dc2f81d9f6ad6d5eff8714d8b86ff2c35dbb6156bd02570bb5c + version: 3.1.1 + resolution: "bigint-mod-arith@npm:3.1.1" + checksum: 9cf87ec8f4d295d9d66199022bb2e8c3a75cf6132cc8bebac2d5cd3d31f4c9cd4694a9eb5d12abdb07009ff5a460b9c0d172682205617d242dc06492124e4ba9 languageName: node linkType: hard @@ -3763,6 +5745,13 @@ __metadata: languageName: node linkType: hard +"browser-process-hrtime@npm:^1.0.0": + version: 1.0.0 + resolution: "browser-process-hrtime@npm:1.0.0" + checksum: e30f868cdb770b1201afb714ad1575dd86366b6e861900884665fb627109b3cc757c40067d3bfee1ff2a29c835257ea30725a8018a9afd02ac1c24b408b1e45f + languageName: node + linkType: hard + "browser-stdout@npm:1.3.1": version: 1.3.1 resolution: "browser-stdout@npm:1.3.1" @@ -3841,8 +5830,22 @@ __metadata: caniuse-lite: ^1.0.30000844 electron-to-chromium: ^1.3.47 bin: - browserslist: ./cli.js - checksum: 74d9ab1089a3813f54a7c4f9f6612faa6256799c8e42c7e00e4aae626c17f199049a01707a525a05b1673cd1493936583e51aad295e25249166e7e8fbd0273ba + browserslist: ./cli.js + checksum: 74d9ab1089a3813f54a7c4f9f6612faa6256799c8e42c7e00e4aae626c17f199049a01707a525a05b1673cd1493936583e51aad295e25249166e7e8fbd0273ba + languageName: node + linkType: hard + +"browserslist@npm:^4.21.3": + version: 4.21.4 + resolution: "browserslist@npm:4.21.4" + dependencies: + caniuse-lite: ^1.0.30001400 + electron-to-chromium: ^1.4.251 + node-releases: ^2.0.6 + update-browserslist-db: ^1.0.9 + bin: + browserslist: cli.js + checksum: 4af3793704dbb4615bcd29059ab472344dc7961c8680aa6c4bb84f05340e14038d06a5aead58724eae69455b8fade8b8c69f1638016e87e5578969d74c078b79 languageName: node linkType: hard @@ -3866,6 +5869,15 @@ __metadata: 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-alloc-unsafe@npm:^1.1.0": version: 1.1.0 resolution: "buffer-alloc-unsafe@npm:1.1.0" @@ -4169,17 +6181,17 @@ __metadata: languageName: node linkType: hard -"camelcase@npm:^6.0.0": +"camelcase@npm:^6.0.0, camelcase@npm:^6.2.0": version: 6.3.0 resolution: "camelcase@npm:6.3.0" checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30000844": - version: 1.0.30001393 - resolution: "caniuse-lite@npm:1.0.30001393" - checksum: 72b7cd81c51f41965f2fbdbb20729d71f2bd5e376d9b4effa22616dd2707640b8676862e8db3db83b76c3bcf2aaefc9ebd5991a10eeb483b460322de5548b98e +"caniuse-lite@npm:^1.0.30000844, caniuse-lite@npm:^1.0.30001400": + version: 1.0.30001402 + resolution: "caniuse-lite@npm:1.0.30001402" + checksum: 6068ccccd64b357f75388cb2303cf351b686b20800571d0a845bff5c0e0d24f83df0133afbbdd8177a33eb087c93d39ecf359035a52b2feac5f182c946f706ee languageName: node linkType: hard @@ -4256,6 +6268,13 @@ __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" @@ -4352,6 +6371,13 @@ __metadata: languageName: node linkType: hard +"ci-info@npm:^3.2.0": + version: 3.4.0 + resolution: "ci-info@npm:3.4.0" + checksum: 7f660730170a6ce248e173b670587a0c583e31526d21afcd21f77c811c1aaeb8926999081542d1f30e12cce1df582d4c88709fa45f44c00498b46bdf21d4d21a + languageName: node + linkType: hard + "cids@npm:^0.7.1": version: 0.7.5 resolution: "cids@npm:0.7.5" @@ -4406,6 +6432,21 @@ __metadata: languageName: node linkType: hard +"circuits@workspace:packages/circuits": + version: 0.0.0-use.local + resolution: "circuits@workspace:packages/circuits" + dependencies: + circomlib: ^2.0.2 + languageName: unknown + linkType: soft + +"cjs-module-lexer@npm:^1.0.0": + version: 1.2.2 + resolution: "cjs-module-lexer@npm:1.2.2" + checksum: 977f3f042bd4f08e368c890d91eecfbc4f91da0bc009a3c557bc4dfbf32022ad1141244ac1178d44de70fc9f3dea7add7cd9a658a34b9fae98a55d8f92331ce5 + languageName: node + linkType: hard + "class-is@npm:^1.1.0": version: 1.1.0 resolution: "class-is@npm:1.1.0" @@ -4584,6 +6625,13 @@ __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 + "code-point-at@npm:^1.0.0": version: 1.1.0 resolution: "code-point-at@npm:1.1.0" @@ -4591,6 +6639,13 @@ __metadata: languageName: node linkType: hard +"collect-v8-coverage@npm:^1.0.0": + version: 1.0.1 + resolution: "collect-v8-coverage@npm:1.0.1" + checksum: 4efe0a1fccd517b65478a2364b33dadd0a43fc92a56f59aaece9b6186fe5177b2de471253587de7c91516f07c7268c2f6770b6cbcffc0e0ece353b766ec87e55 + languageName: node + linkType: hard + "collection-visit@npm:^1.0.0": version: 1.0.0 resolution: "collection-visit@npm:1.0.0" @@ -4723,7 +6778,7 @@ __metadata: languageName: node linkType: hard -"commander@npm:^2.8.1": +"commander@npm:^2.20.0, commander@npm:^2.8.1": version: 2.20.3 resolution: "commander@npm:2.20.3" checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e @@ -4763,6 +6818,13 @@ __metadata: languageName: node linkType: hard +"commondir@npm:^1.0.1": + version: 1.0.1 + resolution: "commondir@npm:1.0.1" + checksum: 59715f2fc456a73f68826285718503340b9f0dd89bfffc42749906c5cf3d4277ef11ef1cca0350d0e79204f00f1f6d83851ececc9095dc88512a697ac0b9bdcb + languageName: node + linkType: hard + "compare-func@npm:^2.0.0": version: 2.0.0 resolution: "compare-func@npm:2.0.0" @@ -4799,6 +6861,13 @@ __metadata: languageName: node linkType: hard +"confusing-browser-globals@npm:^1.0.10": + version: 1.0.11 + resolution: "confusing-browser-globals@npm:1.0.11" + checksum: 3afc635abd37e566477f610e7978b15753f0e84025c25d49236f1f14d480117185516bdd40d2a2167e6bed8048641a9854964b9c067e3dcdfa6b5d0ad3c3a5ef + languageName: node + linkType: hard + "console-control-strings@npm:^1.1.0": version: 1.1.0 resolution: "console-control-strings@npm:1.1.0" @@ -4833,6 +6902,46 @@ __metadata: languageName: node linkType: hard +"contracts@workspace:packages/contracts": + version: 0.0.0-use.local + resolution: "contracts@workspace:packages/contracts" + dependencies: + "@nomiclabs/hardhat-ethers": ^2.0.6 + "@nomiclabs/hardhat-etherscan": ^3.1.0 + "@nomiclabs/hardhat-waffle": ^2.0.3 + "@openzeppelin/contracts": 4.4.2 + "@semaphore-protocol/group": 2.2.0 + "@semaphore-protocol/identity": 2.0.0 + "@semaphore-protocol/proof": 2.3.1 + "@typechain/ethers-v5": ^10.0.0 + "@typechain/hardhat": ^6.0.0 + "@types/chai": ^4.3.0 + "@types/download": ^8.0.1 + "@types/mocha": ^9.1.0 + "@types/node": ^17.0.12 + "@types/rimraf": ^3.0.2 + "@zk-kit/incremental-merkle-tree.sol": 1.3.0 + chai: ^4.3.5 + circomlib: ^2.0.2 + circomlibjs: ^0.0.8 + dotenv: ^14.3.2 + download: ^8.0.0 + ethereum-waffle: ^3.4.4 + ethers: ^5.6.8 + hardhat: ^2.9.7 + hardhat-gas-reporter: ^1.0.8 + js-logger: ^1.6.1 + prettier-plugin-solidity: ^1.0.0-beta.19 + rimraf: ^3.0.2 + snarkjs: ^0.4.13 + solhint: ^3.3.6 + solhint-plugin-prettier: ^0.0.5 + solidity-coverage: ^0.7.21 + ts-node: ^10.4.0 + typechain: ^8.0.0 + languageName: unknown + linkType: soft + "conventional-changelog-angular@npm:^5.0.11": version: 5.0.13 resolution: "conventional-changelog-angular@npm:5.0.13" @@ -4877,7 +6986,7 @@ __metadata: languageName: node linkType: hard -"convert-source-map@npm:^1.5.1": +"convert-source-map@npm:^1.4.0, convert-source-map@npm:^1.5.1, convert-source-map@npm:^1.6.0, convert-source-map@npm:^1.7.0": version: 1.8.0 resolution: "convert-source-map@npm:1.8.0" dependencies: @@ -4921,6 +7030,15 @@ __metadata: languageName: node linkType: hard +"core-js-compat@npm:^3.25.1": + version: 3.25.1 + resolution: "core-js-compat@npm:3.25.1" + dependencies: + browserslist: ^4.21.3 + checksum: 34dbec657adc2f660f4cd701709c9c5e27cbd608211c65df09458f80f3e357b9492ba1c5173e17cca72d889dcc6da01268cadf88fb407cf1726e76d301c6143e + languageName: node + linkType: hard + "core-js-pure@npm:^3.0.1": version: 3.25.1 resolution: "core-js-pure@npm:3.25.1" @@ -4974,14 +7092,14 @@ __metadata: linkType: hard "cosmiconfig-typescript-loader@npm:^4.0.0": - version: 4.0.0 - resolution: "cosmiconfig-typescript-loader@npm:4.0.0" + version: 4.1.0 + resolution: "cosmiconfig-typescript-loader@npm:4.1.0" peerDependencies: "@types/node": "*" cosmiconfig: ">=7" ts-node: ">=10" typescript: ">=3" - checksum: 9151ffe62d0b3b0bac7435add229febf04d72f4db8199390813fef071343865e91e823bd75210f9aabe218dc97a2cc2c776120c0dc886e9164947b80a910c19b + checksum: 434f68e75ea8559deb0058cb06ac0a25ec5c0e65fafc21a891bac863e18cf944bd881b0d80188d02f599e061c3f0e42156f6405e4a299975e40cb1bd740a9b24 languageName: node linkType: hard @@ -5132,6 +7250,29 @@ __metadata: languageName: node linkType: hard +"cssom@npm:^0.4.4": + version: 0.4.4 + resolution: "cssom@npm:0.4.4" + checksum: e3bc1076e7ee4213d4fef05e7ae03bfa83dc05f32611d8edc341f4ecc3d9647b89c8245474c7dd2cdcdb797a27c462e99da7ad00a34399694559f763478ff53f + languageName: node + linkType: hard + +"cssom@npm:~0.3.6": + version: 0.3.8 + resolution: "cssom@npm:0.3.8" + checksum: 24beb3087c76c0d52dd458be9ee1fbc80ac771478a9baef35dd258cdeb527c68eb43204dd439692bb2b1ae5272fa5f2946d10946edab0d04f1078f85e06bc7f6 + languageName: node + linkType: hard + +"cssstyle@npm:^2.3.0": + version: 2.3.0 + resolution: "cssstyle@npm:2.3.0" + dependencies: + cssom: ~0.3.6 + checksum: 5f05e6fd2e3df0b44695c2f08b9ef38b011862b274e320665176467c0725e44a53e341bc4959a41176e83b66064ab786262e7380fd1cabeae6efee0d255bb4e3 + languageName: node + linkType: hard + "cz-conventional-changelog@npm:3.3.0, cz-conventional-changelog@npm:^3.3.0": version: 3.3.0 resolution: "cz-conventional-changelog@npm:3.3.0" @@ -5176,6 +7317,17 @@ __metadata: languageName: node linkType: hard +"data-urls@npm:^2.0.0": + version: 2.0.0 + resolution: "data-urls@npm:2.0.0" + dependencies: + abab: ^2.0.3 + whatwg-mimetype: ^2.3.0 + whatwg-url: ^8.0.0 + checksum: 97caf828aac25e25e04ba6869db0f99c75e6859bb5b424ada28d3e7841941ebf08ddff3c1b1bb4585986bd507a5d54c2a716853ea6cb98af877400e637393e71 + languageName: node + linkType: hard + "death@npm:^1.1.0": version: 1.1.0 resolution: "death@npm:1.1.0" @@ -5213,7 +7365,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:^3.1.0": +"debug@npm:^3.1.0, debug@npm:^3.2.7": version: 3.2.7 resolution: "debug@npm:3.2.7" dependencies: @@ -5246,6 +7398,13 @@ __metadata: languageName: node linkType: hard +"decimal.js@npm:^10.2.1": + version: 10.4.0 + resolution: "decimal.js@npm:10.4.0" + checksum: 98702d9d817a9e5b3767ea6580e7f3b35544b9454e463a5dd5d3232131470f39067d02864c45cab009eb1200bc162cd26a33d34c622cd79e4657a3e25e95fb4e + languageName: node + linkType: hard + "decode-uri-component@npm:^0.2.0": version: 0.2.0 resolution: "decode-uri-component@npm:0.2.0" @@ -5334,7 +7493,7 @@ __metadata: languageName: node linkType: hard -"dedent@npm:0.7.0": +"dedent@npm:0.7.0, dedent@npm:^0.7.0": version: 0.7.0 resolution: "dedent@npm:0.7.0" checksum: 87de191050d9a40dd70cad01159a0bcf05ecb59750951242070b6abf9569088684880d00ba92a955b4058804f16eeaf91d604f283929b4f614d181cd7ae633d2 @@ -5378,6 +7537,13 @@ __metadata: languageName: node linkType: hard +"deepmerge@npm:^4.2.2": + version: 4.2.2 + resolution: "deepmerge@npm:4.2.2" + checksum: a8c43a1ed8d6d1ed2b5bf569fa4c8eb9f0924034baf75d5d406e47e157a451075c4db353efea7b6bcc56ec48116a8ce72fccf867b6e078e7c561904b5897530b + languageName: node + linkType: hard + "defaults@npm:^1.0.3": version: 1.0.3 resolution: "defaults@npm:1.0.3" @@ -5533,6 +7699,13 @@ __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-port@npm:^1.3.0": version: 1.3.0 resolution: "detect-port@npm:1.3.0" @@ -5546,6 +7719,13 @@ __metadata: languageName: node linkType: hard +"diff-sequences@npm:^27.5.1": + version: 27.5.1 + resolution: "diff-sequences@npm:27.5.1" + checksum: a00db5554c9da7da225db2d2638d85f8e41124eccbd56cbaefb3b276dcbb1c1c2ad851c32defe2055a54a4806f030656cbf6638105fd6ce97bb87b90b32a33ca + languageName: node + linkType: hard + "diff@npm:3.5.0": version: 3.5.0 resolution: "diff@npm:3.5.0" @@ -5587,6 +7767,15 @@ __metadata: languageName: node linkType: hard +"doctrine@npm:^2.1.0": + version: 2.1.0 + resolution: "doctrine@npm:2.1.0" + dependencies: + esutils: ^2.0.2 + checksum: a45e277f7feaed309fe658ace1ff286c6e2002ac515af0aaf37145b8baa96e49899638c7cd47dccf84c3d32abfc113246625b3ac8f552d1046072adee13b0dc8 + languageName: node + linkType: hard + "doctrine@npm:^3.0.0": version: 3.0.0 resolution: "doctrine@npm:3.0.0" @@ -5603,6 +7792,15 @@ __metadata: languageName: node linkType: hard +"domexception@npm:^2.0.1": + version: 2.0.1 + resolution: "domexception@npm:2.0.1" + dependencies: + webidl-conversions: ^5.0.0 + checksum: d638e9cb05c52999f1b2eb87c374b03311ea5b1d69c2f875bc92da73e17db60c12142b45c950228642ff7f845c536b65305483350d080df59003a653da80b691 + languageName: node + linkType: hard + "dot-prop@npm:^5.1.0": version: 5.3.0 resolution: "dot-prop@npm:5.3.0" @@ -5691,10 +7889,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.3.47": - version: 1.4.246 - resolution: "electron-to-chromium@npm:1.4.246" - checksum: 0e616e657d97de9d250a2415e5bded0ee8085345c652a30c08bf4e93398aca303ce69743c72f244400f679539e5f89f283875118b88299703539ccace071f450 +"electron-to-chromium@npm:^1.3.47, electron-to-chromium@npm:^1.4.251": + version: 1.4.253 + resolution: "electron-to-chromium@npm:1.4.253" + checksum: 74a4a0f983ffa7c42b1d6847f96c7c333ab86bd2eb374a98ec58ff5ffd2ec9bc6295442bb83b7ba54aeff31a453915b7b0ccf9040863dafb72d8bc182ee1f69f languageName: node linkType: hard @@ -5713,6 +7911,13 @@ __metadata: languageName: node linkType: hard +"emittery@npm:^0.8.1": + version: 0.8.1 + resolution: "emittery@npm:0.8.1" + checksum: 2457e8c7b0688bb006126f2c025b2655abe682f66b184954122a8a065b5277f9813d49d627896a10b076b81c513ec5f491fd9c14fbd42c04b95ca3c9f3c365ee + languageName: node + linkType: hard + "emoji-regex@npm:^10.1.0": version: 10.1.0 resolution: "emoji-regex@npm:10.1.0" @@ -5822,7 +8027,7 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.19.0, es-abstract@npm:^1.19.2, es-abstract@npm:^1.19.5, es-abstract@npm:^1.20.0, es-abstract@npm:^1.20.1": +"es-abstract@npm:^1.19.0, es-abstract@npm:^1.19.1, es-abstract@npm:^1.19.2, es-abstract@npm:^1.19.5, es-abstract@npm:^1.20.0, es-abstract@npm:^1.20.1": version: 1.20.2 resolution: "es-abstract@npm:1.20.2" dependencies: @@ -5860,6 +8065,15 @@ __metadata: languageName: node linkType: hard +"es-shim-unscopables@npm:^1.0.0": + version: 1.0.0 + resolution: "es-shim-unscopables@npm:1.0.0" + dependencies: + has: ^1.0.3 + checksum: 83e95cadbb6ee44d3644dfad60dcad7929edbc42c85e66c3e99aefd68a3a5c5665f2686885cddb47dfeabfd77bd5ea5a7060f2092a955a729bbd8834f0d86fa1 + languageName: node + linkType: hard + "es-to-primitive@npm:^1.2.1": version: 1.2.1 resolution: "es-to-primitive@npm:1.2.1" @@ -5938,6 +8152,13 @@ __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 + "escodegen@npm:1.8.x": version: 1.8.1 resolution: "escodegen@npm:1.8.1" @@ -5957,6 +8178,54 @@ __metadata: languageName: node linkType: hard +"escodegen@npm:^2.0.0": + version: 2.0.0 + resolution: "escodegen@npm:2.0.0" + dependencies: + esprima: ^4.0.1 + estraverse: ^5.2.0 + esutils: ^2.0.2 + optionator: ^0.8.1 + source-map: ~0.6.1 + dependenciesMeta: + source-map: + optional: true + bin: + escodegen: bin/escodegen.js + esgenerate: bin/esgenerate.js + checksum: 5aa6b2966fafe0545e4e77936300cc94ad57cfe4dc4ebff9950492eaba83eef634503f12d7e3cbd644ecc1bab388ad0e92b06fd32222c9281a75d1cf02ec6cef + languageName: node + linkType: hard + +"eslint-config-airbnb-base@npm:15.0.0, eslint-config-airbnb-base@npm:^15.0.0": + version: 15.0.0 + resolution: "eslint-config-airbnb-base@npm:15.0.0" + dependencies: + confusing-browser-globals: ^1.0.10 + object.assign: ^4.1.2 + object.entries: ^1.1.5 + semver: ^6.3.0 + peerDependencies: + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.2 + checksum: 38626bad2ce2859fccac86b30cd2b86c9b7d8d71d458331860861dc05290a5b198bded2f4fb89efcb9046ec48f8ab4c4fb00365ba8916f27b172671da28b93ea + languageName: node + linkType: hard + +"eslint-config-airbnb-typescript@npm:^16.1.0": + version: 16.2.0 + resolution: "eslint-config-airbnb-typescript@npm:16.2.0" + dependencies: + eslint-config-airbnb-base: ^15.0.0 + peerDependencies: + "@typescript-eslint/eslint-plugin": ^5.0.0 + "@typescript-eslint/parser": ^5.0.0 + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.3 + checksum: eb44e32874f6ac566da7bfb451f7d271eab3c6f6f4e863bbacc13a7c6d09671f02819886d37f8fe670bafa6cc5fbe38450632cc9f8862e405734fd7bb813d02a + languageName: node + linkType: hard + "eslint-config-prettier@npm:^8.3.0": version: 8.5.0 resolution: "eslint-config-prettier@npm:8.5.0" @@ -5968,6 +8237,68 @@ __metadata: languageName: node linkType: hard +"eslint-import-resolver-node@npm:^0.3.6": + version: 0.3.6 + resolution: "eslint-import-resolver-node@npm:0.3.6" + dependencies: + debug: ^3.2.7 + resolve: ^1.20.0 + checksum: 6266733af1e112970e855a5bcc2d2058fb5ae16ad2a6d400705a86b29552b36131ffc5581b744c23d550de844206fb55e9193691619ee4dbf225c4bde526b1c8 + languageName: node + linkType: hard + +"eslint-module-utils@npm:^2.7.3": + version: 2.7.4 + resolution: "eslint-module-utils@npm:2.7.4" + dependencies: + debug: ^3.2.7 + peerDependenciesMeta: + eslint: + optional: true + checksum: 5da13645daff145a5c922896b258f8bba560722c3767254e458d894ff5fbb505d6dfd945bffa932a5b0ae06714da2379bd41011c4c20d2d59cc83e23895360f7 + languageName: node + linkType: hard + +"eslint-plugin-import@npm:^2.25.2": + version: 2.26.0 + resolution: "eslint-plugin-import@npm:2.26.0" + dependencies: + array-includes: ^3.1.4 + array.prototype.flat: ^1.2.5 + debug: ^2.6.9 + doctrine: ^2.1.0 + eslint-import-resolver-node: ^0.3.6 + eslint-module-utils: ^2.7.3 + has: ^1.0.3 + is-core-module: ^2.8.1 + is-glob: ^4.0.3 + minimatch: ^3.1.2 + object.values: ^1.1.5 + resolve: ^1.22.0 + tsconfig-paths: ^3.14.1 + peerDependencies: + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + checksum: 0bf77ad80339554481eafa2b1967449e1f816b94c7a6f9614ce33fb4083c4e6c050f10d241dd50b4975d47922880a34de1e42ea9d8e6fd663ebb768baa67e655 + languageName: node + linkType: hard + +"eslint-plugin-jest@npm:^25.7.0": + 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-scope@npm:^4.0.3": version: 4.0.3 resolution: "eslint-scope@npm:4.0.3" @@ -6085,11 +8416,11 @@ __metadata: languageName: node linkType: hard -"eslint@npm:^8.7.0": - version: 8.23.0 - resolution: "eslint@npm:8.23.0" +"eslint@npm:^8.2.0": + version: 8.23.1 + resolution: "eslint@npm:8.23.1" dependencies: - "@eslint/eslintrc": ^1.3.1 + "@eslint/eslintrc": ^1.3.2 "@humanwhocodes/config-array": ^0.10.4 "@humanwhocodes/gitignore-to-minimatch": ^1.0.2 "@humanwhocodes/module-importer": ^1.0.1 @@ -6108,7 +8439,6 @@ __metadata: fast-deep-equal: ^3.1.3 file-entry-cache: ^6.0.1 find-up: ^5.0.0 - functional-red-black-tree: ^1.0.1 glob-parent: ^6.0.1 globals: ^13.15.0 globby: ^11.1.0 @@ -6117,6 +8447,7 @@ __metadata: import-fresh: ^3.0.0 imurmurhash: ^0.1.4 is-glob: ^4.0.0 + js-sdsl: ^4.1.4 js-yaml: ^4.1.0 json-stable-stringify-without-jsonify: ^1.0.1 levn: ^0.4.1 @@ -6130,7 +8461,7 @@ __metadata: text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: ff6075daa28d817a7ac4508f31bc108a04d9ab5056608c8651b5bf9cfea5d708ca16dea6cdab2c3c0ae99b0bf0e726af8504eaa8e17c8e12e242cb68237ead64 + checksum: a727e15492786a03b438bcf021db49f715680679846a7b8d79b98ad34576f2a570404ffe882d3c3e26f6359bff7277ef11fae5614bfe8629adb653f20d018c71 languageName: node linkType: hard @@ -6166,7 +8497,7 @@ __metadata: languageName: node linkType: hard -"esprima@npm:^4.0.0": +"esprima@npm:^4.0.0, esprima@npm:^4.0.1": version: 4.0.1 resolution: "esprima@npm:4.0.1" bin: @@ -6215,6 +8546,27 @@ __metadata: languageName: node linkType: hard +"estree-walker@npm:^0.6.1": + version: 0.6.1 + resolution: "estree-walker@npm:0.6.1" + checksum: 9d6f82a4921f11eec18f8089fb3cce6e53bcf45a8e545c42a2674d02d055fb30f25f90495f8be60803df6c39680c80dcee7f944526867eb7aa1fc9254883b23d + languageName: node + linkType: hard + +"estree-walker@npm:^1.0.1": + version: 1.0.1 + resolution: "estree-walker@npm:1.0.1" + checksum: 7e70da539691f6db03a08e7ce94f394ce2eef4180e136d251af299d41f92fb2d28ebcd9a6e393e3728d7970aeb5358705ddf7209d52fbcb2dd4693f95dcf925f + languageName: node + linkType: hard + +"estree-walker@npm:^2.0.1": + version: 2.0.2 + resolution: "estree-walker@npm:2.0.2" + checksum: 6151e6f9828abe2259e57f5fd3761335bb0d2ebd76dc1a01048ccee22fabcfef3c0859300f6d83ff0d1927849368775ec5a6d265dde2f6de5a1be1721cd94efc + languageName: node + linkType: hard + "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" @@ -6740,8 +9092,8 @@ __metadata: linkType: hard "ethers@npm:^5.0.1, ethers@npm:^5.0.2, ethers@npm:^5.5.2, ethers@npm:^5.6.8": - version: 5.7.0 - resolution: "ethers@npm:5.7.0" + version: 5.7.1 + resolution: "ethers@npm:5.7.1" dependencies: "@ethersproject/abi": 5.7.0 "@ethersproject/abstract-provider": 5.7.0 @@ -6758,10 +9110,10 @@ __metadata: "@ethersproject/json-wallets": 5.7.0 "@ethersproject/keccak256": 5.7.0 "@ethersproject/logger": 5.7.0 - "@ethersproject/networks": 5.7.0 + "@ethersproject/networks": 5.7.1 "@ethersproject/pbkdf2": 5.7.0 "@ethersproject/properties": 5.7.0 - "@ethersproject/providers": 5.7.0 + "@ethersproject/providers": 5.7.1 "@ethersproject/random": 5.7.0 "@ethersproject/rlp": 5.7.0 "@ethersproject/sha2": 5.7.0 @@ -6771,9 +9123,9 @@ __metadata: "@ethersproject/transactions": 5.7.0 "@ethersproject/units": 5.7.0 "@ethersproject/wallet": 5.7.0 - "@ethersproject/web": 5.7.0 + "@ethersproject/web": 5.7.1 "@ethersproject/wordlists": 5.7.0 - checksum: 03b16c194e035a25c0c522b81f5bb9d2157f9389db3227066ff3bbf0bd348218a25b576a5293078b61885bd2be6871e1da8232cf5351ce72de1189c89e4d05c7 + checksum: 7a61b7a105c41f9fec327887414f1950dc27bfa2d12fe29a068419eaaa3d415e6a12275685c87f700abd88c3b639ae79c09a2f90edea1e69edc8126cb0dce708 languageName: node linkType: hard @@ -6846,6 +9198,13 @@ __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 + "expand-brackets@npm:^2.1.4": version: 2.1.4 resolution: "expand-brackets@npm:2.1.4" @@ -6870,6 +9229,18 @@ __metadata: languageName: node linkType: hard +"expect@npm:^27.5.1": + version: 27.5.1 + resolution: "expect@npm:27.5.1" + dependencies: + "@jest/types": ^27.5.1 + jest-get-type: ^27.5.1 + jest-matcher-utils: ^27.5.1 + jest-message-util: ^27.5.1 + checksum: b2c66beb52de53ef1872165aace40224e722bca3c2274c54cfa74b6d617d55cf0ccdbf36783ccd64dbea501b280098ed33fd0b207d4f15bc03cd3c7a24364a6a + languageName: node + linkType: hard + "express@npm:^4.14.0": version: 4.18.1 resolution: "express@npm:4.18.1" @@ -7070,6 +9441,15 @@ __metadata: languageName: node linkType: hard +"fb-watchman@npm:^2.0.0": + version: 2.0.1 + resolution: "fb-watchman@npm:2.0.1" + dependencies: + bser: 2.1.1 + checksum: 8510230778ab3a51c27dffb1b76ef2c24fab672a42742d3c0a45c2e9d1e5f20210b1fbca33486088da4a9a3958bde96b5aec0a63aac9894b4e9df65c88b2cbd6 + languageName: node + linkType: hard + "fd-slicer@npm:~1.1.0": version: 1.1.0 resolution: "fd-slicer@npm:1.1.0" @@ -7100,7 +9480,7 @@ __metadata: languageName: node linkType: hard -"ffjavascript@npm:^0.2.38, ffjavascript@npm:^0.2.48": +"ffjavascript@npm:^0.2.38, ffjavascript@npm:^0.2.48, ffjavascript@npm:^0.2.54": version: 0.2.56 resolution: "ffjavascript@npm:0.2.56" dependencies: @@ -7245,6 +9625,17 @@ __metadata: languageName: node linkType: hard +"find-cache-dir@npm:^3.3.2": + version: 3.3.2 + resolution: "find-cache-dir@npm:3.3.2" + dependencies: + commondir: ^1.0.1 + make-dir: ^3.0.2 + pkg-dir: ^4.1.0 + checksum: 1e61c2e64f5c0b1c535bd85939ae73b0e5773142713273818cc0b393ee3555fb0fd44e1a5b161b8b6c3e03e98c2fcc9c227d784850a13a90a8ab576869576817 + languageName: node + linkType: hard + "find-node-modules@npm:^2.1.2": version: 2.1.3 resolution: "find-node-modules@npm:2.1.3" @@ -7319,7 +9710,7 @@ __metadata: languageName: node linkType: hard -"find-up@npm:^4.1.0": +"find-up@npm:^4.0.0, find-up@npm:^4.1.0": version: 4.1.0 resolution: "find-up@npm:4.1.0" dependencies: @@ -7422,13 +9813,13 @@ __metadata: languageName: node linkType: hard -"follow-redirects@npm:^1.12.1": - version: 1.15.1 - resolution: "follow-redirects@npm:1.15.1" +"follow-redirects@npm:^1.12.1, follow-redirects@npm:^1.14.9": + version: 1.15.2 + resolution: "follow-redirects@npm:1.15.2" peerDependenciesMeta: debug: optional: true - checksum: 6aa4e3e3cdfa3b9314801a1cd192ba756a53479d9d8cca65bf4db3a3e8834e62139245cd2f9566147c8dfe2efff1700d3e6aefd103de4004a7b99985e71dd533 + checksum: faa66059b66358ba65c234c2f2a37fcec029dc22775f35d9ad6abac56003268baf41e55f9ee645957b32c7d9f62baf1f0b906e68267276f54ec4b4c597c2b190 languageName: node linkType: hard @@ -7484,6 +9875,17 @@ __metadata: languageName: node linkType: hard +"form-data@npm:^4.0.0": + version: 4.0.0 + resolution: "form-data@npm:4.0.0" + dependencies: + asynckit: ^0.4.0 + combined-stream: ^1.0.8 + mime-types: ^2.1.12 + checksum: 01135bf8675f9d5c61ff18e2e2932f719ca4de964e3be90ef4c36aacfc7b9cb2fceb5eca0b7e0190e3383fe51c5b37f4cb80b62ca06a99aaabfcfd6ac7c9328c + languageName: node + linkType: hard + "form-data@npm:~2.3.2": version: 2.3.3 resolution: "form-data@npm:2.3.3" @@ -7650,17 +10052,7 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:~2.1.1": - version: 2.1.3 - resolution: "fsevents@npm:2.1.3" - dependencies: - node-gyp: latest - checksum: b5ec0516b44d75b60af5c01ff80a80cd995d175e4640d2a92fbabd02991dd664d76b241b65feef0775c23d531c3c74742c0fbacd6205af812a9c3cef59f04292 - conditions: os=darwin - languageName: node - linkType: hard - -"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: @@ -7670,16 +10062,17 @@ __metadata: languageName: node linkType: hard -"fsevents@patch:fsevents@~2.1.1#~builtin": +"fsevents@npm:~2.1.1": version: 2.1.3 - resolution: "fsevents@patch:fsevents@npm%3A2.1.3#~builtin::version=2.1.3&hash=18f3a7" + resolution: "fsevents@npm:2.1.3" dependencies: node-gyp: latest + checksum: b5ec0516b44d75b60af5c01ff80a80cd995d175e4640d2a92fbabd02991dd664d76b241b65feef0775c23d531c3c74742c0fbacd6205af812a9c3cef59f04292 conditions: os=darwin 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": version: 2.3.2 resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=18f3a7" dependencies: @@ -7688,6 +10081,15 @@ __metadata: languageName: node linkType: hard +"fsevents@patch:fsevents@~2.1.1#~builtin": + version: 2.1.3 + resolution: "fsevents@patch:fsevents@npm%3A2.1.3#~builtin::version=2.1.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" @@ -7780,6 +10182,13 @@ __metadata: languageName: node linkType: hard +"gensync@npm:^1.0.0-beta.2": + version: 1.0.0-beta.2 + resolution: "gensync@npm:1.0.0-beta.2" + checksum: a7437e58c6be12aa6c90f7730eac7fa9833dc78872b4ad2963d2031b00a3367a93f98aec75f9aaac7220848e4026d67a8655e870b24f20a543d103c0d65952ec + languageName: node + linkType: hard + "get-caller-file@npm:^1.0.1": version: 1.0.3 resolution: "get-caller-file@npm:1.0.3" @@ -7802,13 +10211,20 @@ __metadata: linkType: hard "get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.0, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.2": - version: 1.1.2 - resolution: "get-intrinsic@npm:1.1.2" + version: 1.1.3 + resolution: "get-intrinsic@npm:1.1.3" dependencies: function-bind: ^1.1.1 has: ^1.0.3 has-symbols: ^1.0.3 - checksum: 252f45491f2ba88ebf5b38018020c7cc3279de54b1d67ffb70c0cdf1dfa8ab31cd56467b5d117a8b4275b7a4dde91f86766b163a17a850f036528a7b2faafb2b + checksum: 152d79e87251d536cf880ba75cfc3d6c6c50e12b3a64e1ea960e73a3752b47c69f46034456eae1b0894359ce3bc64c55c186f2811f8a788b75b638b06fab228a + languageName: node + linkType: hard + +"get-package-type@npm:^0.1.0": + version: 0.1.0 + resolution: "get-package-type@npm:0.1.0" + checksum: bba0811116d11e56d702682ddef7c73ba3481f114590e705fc549f4d868972263896af313c57a25c076e3c0d567e11d919a64ba1b30c879be985fc9d44f96148 languageName: node linkType: hard @@ -7974,7 +10390,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:7.2.3, glob@npm:^7.0.0, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:~7.2.3": +"glob@npm:7.2.3, glob@npm:^7.0.0, glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:~7.2.3": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -8001,7 +10417,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^8.0.1": +"glob@npm:^8.0.1, glob@npm:^8.0.3": version: 8.0.3 resolution: "glob@npm:8.0.3" dependencies: @@ -8077,7 +10493,7 @@ __metadata: languageName: node linkType: hard -"globals@npm:^11.7.0": +"globals@npm:^11.1.0, globals@npm:^11.7.0": version: 11.12.0 resolution: "globals@npm:11.12.0" checksum: 67051a45eca3db904aee189dfc7cd53c20c7d881679c93f6146ddd4c9f4ab2268e68a919df740d39c71f4445d2b38ee360fc234428baea1dbdfe68bbcb46979e @@ -8214,7 +10630,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.10, graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.1.9, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": +"graceful-fs@npm:^4.1.10, graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.1.9, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.10 resolution: "graceful-fs@npm:4.2.10" checksum: 3f109d70ae123951905d85032ebeae3c2a5a7a997430df00ea30df0e3a6c60cf6689b109654d6fdacd28810a053348c4d14642da1d075049e6be1ba5216218da @@ -8291,21 +10707,21 @@ __metadata: linkType: hard "hardhat@npm:^2.9.7": - version: 2.11.1 - resolution: "hardhat@npm:2.11.1" + version: 2.11.2 + resolution: "hardhat@npm:2.11.2" dependencies: "@ethersproject/abi": ^5.1.2 "@metamask/eth-sig-util": ^4.0.0 - "@nomicfoundation/ethereumjs-block": ^4.0.0-rc.3 - "@nomicfoundation/ethereumjs-blockchain": ^6.0.0-rc.3 - "@nomicfoundation/ethereumjs-common": ^3.0.0-rc.3 - "@nomicfoundation/ethereumjs-evm": ^1.0.0-rc.3 - "@nomicfoundation/ethereumjs-rlp": ^4.0.0-rc.3 - "@nomicfoundation/ethereumjs-statemanager": ^1.0.0-rc.3 - "@nomicfoundation/ethereumjs-trie": ^5.0.0-rc.3 - "@nomicfoundation/ethereumjs-tx": ^4.0.0-rc.3 - "@nomicfoundation/ethereumjs-util": ^8.0.0-rc.3 - "@nomicfoundation/ethereumjs-vm": ^6.0.0-rc.3 + "@nomicfoundation/ethereumjs-block": ^4.0.0 + "@nomicfoundation/ethereumjs-blockchain": ^6.0.0 + "@nomicfoundation/ethereumjs-common": ^3.0.0 + "@nomicfoundation/ethereumjs-evm": ^1.0.0 + "@nomicfoundation/ethereumjs-rlp": ^4.0.0 + "@nomicfoundation/ethereumjs-statemanager": ^1.0.0 + "@nomicfoundation/ethereumjs-trie": ^5.0.0 + "@nomicfoundation/ethereumjs-tx": ^4.0.0 + "@nomicfoundation/ethereumjs-util": ^8.0.0 + "@nomicfoundation/ethereumjs-vm": ^6.0.0 "@nomicfoundation/solidity-analyzer": ^0.0.3 "@sentry/node": ^5.18.1 "@types/bn.js": ^5.1.0 @@ -8354,7 +10770,7 @@ __metadata: optional: true bin: hardhat: internal/cli/cli.js - checksum: fc35526bcc2fd44fba38bfe7dd7049e9771f860f6d804c2505188c610f9562f674601260f704254de757442cbcf3e0225be45020a4b8c46c6cbe68fd6da0976b + checksum: 6fc289931c970a16fe09f7aa2b14f8b4f4a63304895be7e89112d4065cfdb15887d90cdd827d10f413fb5cc1ca09fb0b512b7ffc79dc6bc121368bda70dffb4a languageName: node linkType: hard @@ -8591,6 +11007,22 @@ __metadata: languageName: node linkType: hard +"html-encoding-sniffer@npm:^2.0.1": + version: 2.0.1 + resolution: "html-encoding-sniffer@npm:2.0.1" + dependencies: + whatwg-encoding: ^1.0.5 + checksum: bf30cce461015ed7e365736fcd6a3063c7bc016a91f74398ef6158886970a96333938f7c02417ab3c12aa82e3e53b40822145facccb9ddfbcdc15a879ae4d7ba + 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-basic@npm:^8.1.1": version: 8.1.3 resolution: "http-basic@npm:8.1.3" @@ -8637,6 +11069,17 @@ __metadata: languageName: node linkType: hard +"http-proxy-agent@npm:^4.0.1": + version: 4.0.1 + resolution: "http-proxy-agent@npm:4.0.1" + dependencies: + "@tootallnate/once": 1 + agent-base: 6 + debug: 4 + checksum: c6a5da5a1929416b6bbdf77b1aca13888013fe7eb9d59fc292e25d18e041bb154a8dfada58e223fc7b76b9b2d155a87e92e608235201f77d34aa258707963a82 + languageName: node + linkType: hard + "http-proxy-agent@npm:^5.0.0": version: 5.0.0 resolution: "http-proxy-agent@npm:5.0.0" @@ -8803,6 +11246,18 @@ __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 + "imurmurhash@npm:^0.1.4": version: 0.1.4 resolution: "imurmurhash@npm:0.1.4" @@ -9037,9 +11492,9 @@ __metadata: linkType: hard "is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.4": - version: 1.2.4 - resolution: "is-callable@npm:1.2.4" - checksum: 1a28d57dc435797dae04b173b65d6d1e77d4f16276e9eff973f994eadcfdc30a017e6a597f092752a083c1103cceb56c91e3dadc6692fedb9898dfaba701575f + version: 1.2.6 + resolution: "is-callable@npm:1.2.6" + checksum: 7667d6a6be66df00741cfa18c657877c46a00139ea7ea7765251e9db0182745c9ee173506941a329d6914e34e59e9cc80029fb3f68bbf8c22a6c155ee6ea77b3 languageName: node linkType: hard @@ -9054,7 +11509,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.5.0, is-core-module@npm:^2.9.0": +"is-core-module@npm:^2.5.0, is-core-module@npm:^2.8.1, is-core-module@npm:^2.9.0": version: 2.10.0 resolution: "is-core-module@npm:2.10.0" dependencies: @@ -9202,6 +11657,13 @@ __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" @@ -9317,6 +11779,13 @@ __metadata: languageName: node linkType: hard +"is-potential-custom-element-name@npm:^1.0.1": + version: 1.0.1 + resolution: "is-potential-custom-element-name@npm:1.0.1" + checksum: ced7bbbb6433a5b684af581872afe0e1767e2d1146b2207ca0068a648fb5cab9d898495d1ac0583524faaf24ca98176a7d9876363097c2d14fee6dd324f3a1ab + languageName: node + linkType: hard + "is-regex@npm:^1.0.4, is-regex@npm:^1.1.4, is-regex@npm:~1.1.4": version: 1.1.4 resolution: "is-regex@npm:1.1.4" @@ -9494,6 +11963,58 @@ __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.0 + resolution: "istanbul-lib-instrument@npm:5.2.0" + 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: 7c242ed782b6bf7b655656576afae8b6bd23dcc020e5fdc1472cca3dfb6ddb196a478385206d0df5219b9babf46ac4f21fea5d8ea9a431848b6cca6007012353 + 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 + "isurl@npm:^1.0.0-alpha5": version: 1.0.0 resolution: "isurl@npm:1.0.0" @@ -9513,8 +12034,519 @@ __metadata: filelist: ^1.0.1 minimatch: ^3.0.4 bin: - jake: ./bin/cli.js - checksum: 56c913ecf5a8d74325d0af9bc17a233bad50977438d44864d925bb6c45c946e0fee8c4c1f5fe2225471ef40df5222e943047982717ebff0d624770564d3c46ba + jake: ./bin/cli.js + checksum: 56c913ecf5a8d74325d0af9bc17a233bad50977438d44864d925bb6c45c946e0fee8c4c1f5fe2225471ef40df5222e943047982717ebff0d624770564d3c46ba + languageName: node + linkType: hard + +"jest-changed-files@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-changed-files@npm:27.5.1" + dependencies: + "@jest/types": ^27.5.1 + execa: ^5.0.0 + throat: ^6.0.1 + checksum: 95e9dc74c3ca688ef85cfeab270f43f8902721a6c8ade6ac2459459a77890c85977f537d6fb809056deaa6d9c3f075fa7d2699ff5f3bf7d3fda17c3760b79b15 + languageName: node + linkType: hard + +"jest-circus@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-circus@npm:27.5.1" + dependencies: + "@jest/environment": ^27.5.1 + "@jest/test-result": ^27.5.1 + "@jest/types": ^27.5.1 + "@types/node": "*" + chalk: ^4.0.0 + co: ^4.6.0 + dedent: ^0.7.0 + expect: ^27.5.1 + is-generator-fn: ^2.0.0 + jest-each: ^27.5.1 + jest-matcher-utils: ^27.5.1 + jest-message-util: ^27.5.1 + jest-runtime: ^27.5.1 + jest-snapshot: ^27.5.1 + jest-util: ^27.5.1 + pretty-format: ^27.5.1 + slash: ^3.0.0 + stack-utils: ^2.0.3 + throat: ^6.0.1 + checksum: 6192dccbccb3a6acfa361cbb97bdbabe94864ccf3d885932cfd41f19534329d40698078cf9be1489415e8234255d6ea9f9aff5396b79ad842a6fca6e6fc08fd0 + languageName: node + linkType: hard + +"jest-cli@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-cli@npm:27.5.1" + dependencies: + "@jest/core": ^27.5.1 + "@jest/test-result": ^27.5.1 + "@jest/types": ^27.5.1 + chalk: ^4.0.0 + exit: ^0.1.2 + graceful-fs: ^4.2.9 + import-local: ^3.0.2 + jest-config: ^27.5.1 + jest-util: ^27.5.1 + jest-validate: ^27.5.1 + prompts: ^2.0.1 + yargs: ^16.2.0 + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + bin: + jest: bin/jest.js + checksum: 6c0a69fb48e500241409e09ff743ed72bc6578d7769e2c994724e7ef1e5587f6c1f85dc429e93b98ae38a365222993ee70f0acc2199358992120900984f349e5 + languageName: node + linkType: hard + +"jest-config@npm:^27.4.7, jest-config@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-config@npm:27.5.1" + dependencies: + "@babel/core": ^7.8.0 + "@jest/test-sequencer": ^27.5.1 + "@jest/types": ^27.5.1 + babel-jest: ^27.5.1 + chalk: ^4.0.0 + ci-info: ^3.2.0 + deepmerge: ^4.2.2 + glob: ^7.1.1 + graceful-fs: ^4.2.9 + jest-circus: ^27.5.1 + jest-environment-jsdom: ^27.5.1 + jest-environment-node: ^27.5.1 + jest-get-type: ^27.5.1 + jest-jasmine2: ^27.5.1 + jest-regex-util: ^27.5.1 + jest-resolve: ^27.5.1 + jest-runner: ^27.5.1 + jest-util: ^27.5.1 + jest-validate: ^27.5.1 + micromatch: ^4.0.4 + parse-json: ^5.2.0 + pretty-format: ^27.5.1 + slash: ^3.0.0 + strip-json-comments: ^3.1.1 + peerDependencies: + ts-node: ">=9.0.0" + peerDependenciesMeta: + ts-node: + optional: true + checksum: 1188fd46c0ed78cbe3175eb9ad6712ccf74a74be33d9f0d748e147c107f0889f8b701fbff1567f31836ae18597dacdc43d6a8fc30dd34ade6c9229cc6c7cb82d + languageName: node + linkType: hard + +"jest-diff@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-diff@npm:27.5.1" + dependencies: + chalk: ^4.0.0 + diff-sequences: ^27.5.1 + jest-get-type: ^27.5.1 + pretty-format: ^27.5.1 + checksum: 8be27c1e1ee57b2bb2bef9c0b233c19621b4c43d53a3c26e2c00a4e805eb4ea11fe1694a06a9fb0e80ffdcfdc0d2b1cb0b85920b3f5c892327ecd1e7bd96b865 + languageName: node + linkType: hard + +"jest-docblock@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-docblock@npm:27.5.1" + dependencies: + detect-newline: ^3.0.0 + checksum: c0fed6d55b229d8bffdd8d03f121dd1a3be77c88f50552d374f9e1ea3bde57bf6bea017a0add04628d98abcb1bfb48b456438eeca8a74ef0053f4dae3b95d29c + languageName: node + linkType: hard + +"jest-each@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-each@npm:27.5.1" + dependencies: + "@jest/types": ^27.5.1 + chalk: ^4.0.0 + jest-get-type: ^27.5.1 + jest-util: ^27.5.1 + pretty-format: ^27.5.1 + checksum: b5a6d8730fd938982569c9e0b42bdf3c242f97b957ed8155a6473b5f7b540970f8685524e7f53963dc1805319f4b6602abfc56605590ca19d55bd7a87e467e63 + languageName: node + linkType: hard + +"jest-environment-jsdom@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-environment-jsdom@npm:27.5.1" + dependencies: + "@jest/environment": ^27.5.1 + "@jest/fake-timers": ^27.5.1 + "@jest/types": ^27.5.1 + "@types/node": "*" + jest-mock: ^27.5.1 + jest-util: ^27.5.1 + jsdom: ^16.6.0 + checksum: bc104aef7d7530d0740402aa84ac812138b6d1e51fe58adecce679f82b99340ddab73e5ec68fa079f33f50c9ddec9728fc9f0ddcca2ad6f0b351eed2762cc555 + languageName: node + linkType: hard + +"jest-environment-node@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-environment-node@npm:27.5.1" + dependencies: + "@jest/environment": ^27.5.1 + "@jest/fake-timers": ^27.5.1 + "@jest/types": ^27.5.1 + "@types/node": "*" + jest-mock: ^27.5.1 + jest-util: ^27.5.1 + checksum: 0f988330c4f3eec092e3fb37ea753b0c6f702e83cd8f4d770af9c2bf964a70bc45fbd34ec6fdb6d71ce98a778d9f54afd673e63f222e4667fff289e8069dba39 + languageName: node + linkType: hard + +"jest-get-type@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-get-type@npm:27.5.1" + checksum: 63064ab70195c21007d897c1157bf88ff94a790824a10f8c890392e7d17eda9c3900513cb291ca1c8d5722cad79169764e9a1279f7c8a9c4cd6e9109ff04bbc0 + languageName: node + linkType: hard + +"jest-haste-map@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-haste-map@npm:27.5.1" + dependencies: + "@jest/types": ^27.5.1 + "@types/graceful-fs": ^4.1.2 + "@types/node": "*" + anymatch: ^3.0.3 + fb-watchman: ^2.0.0 + fsevents: ^2.3.2 + graceful-fs: ^4.2.9 + jest-regex-util: ^27.5.1 + jest-serializer: ^27.5.1 + jest-util: ^27.5.1 + jest-worker: ^27.5.1 + micromatch: ^4.0.4 + walker: ^1.0.7 + dependenciesMeta: + fsevents: + optional: true + checksum: e092a1412829a9254b4725531ee72926de530f77fda7b0d9ea18008fb7623c16f72e772d8e93be71cac9e591b2c6843a669610887dd2c89bd9eb528856e3ab47 + languageName: node + linkType: hard + +"jest-jasmine2@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-jasmine2@npm:27.5.1" + dependencies: + "@jest/environment": ^27.5.1 + "@jest/source-map": ^27.5.1 + "@jest/test-result": ^27.5.1 + "@jest/types": ^27.5.1 + "@types/node": "*" + chalk: ^4.0.0 + co: ^4.6.0 + expect: ^27.5.1 + is-generator-fn: ^2.0.0 + jest-each: ^27.5.1 + jest-matcher-utils: ^27.5.1 + jest-message-util: ^27.5.1 + jest-runtime: ^27.5.1 + jest-snapshot: ^27.5.1 + jest-util: ^27.5.1 + pretty-format: ^27.5.1 + throat: ^6.0.1 + checksum: b716adf253ceb73db661936153394ab90d7f3a8ba56d6189b7cd4df8e4e2a4153b4e63ebb5d36e29ceb0f4c211d5a6f36ab7048c6abbd881c8646567e2ab8e6d + languageName: node + linkType: hard + +"jest-leak-detector@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-leak-detector@npm:27.5.1" + dependencies: + jest-get-type: ^27.5.1 + pretty-format: ^27.5.1 + checksum: 5c9689060960567ddaf16c570d87afa760a461885765d2c71ef4f4857bbc3af1482c34e3cce88e50beefde1bf35e33530b020480752057a7e3dbb1ca0bae359f + languageName: node + linkType: hard + +"jest-matcher-utils@npm:^27.0.0, jest-matcher-utils@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-matcher-utils@npm:27.5.1" + dependencies: + chalk: ^4.0.0 + jest-diff: ^27.5.1 + jest-get-type: ^27.5.1 + pretty-format: ^27.5.1 + checksum: bb2135fc48889ff3fe73888f6cc7168ddab9de28b51b3148f820c89fdfd2effdcad005f18be67d0b9be80eda208ad47290f62f03d0a33f848db2dd0273c8217a + languageName: node + linkType: hard + +"jest-message-util@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-message-util@npm:27.5.1" + dependencies: + "@babel/code-frame": ^7.12.13 + "@jest/types": ^27.5.1 + "@types/stack-utils": ^2.0.0 + chalk: ^4.0.0 + graceful-fs: ^4.2.9 + micromatch: ^4.0.4 + pretty-format: ^27.5.1 + slash: ^3.0.0 + stack-utils: ^2.0.3 + checksum: eb6d637d1411c71646de578c49826b6da8e33dd293e501967011de9d1916d53d845afbfb52a5b661ff1c495be7c13f751c48c7f30781fd94fbd64842e8195796 + languageName: node + linkType: hard + +"jest-mock@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-mock@npm:27.5.1" + dependencies: + "@jest/types": ^27.5.1 + "@types/node": "*" + checksum: f5b5904bb1741b4a1687a5f492535b7b1758dc26534c72a5423305f8711292e96a601dec966df81bb313269fb52d47227e29f9c2e08324d79529172f67311be0 + languageName: node + linkType: hard + +"jest-pnp-resolver@npm:^1.2.2": + version: 1.2.2 + resolution: "jest-pnp-resolver@npm:1.2.2" + peerDependencies: + jest-resolve: "*" + peerDependenciesMeta: + jest-resolve: + optional: true + checksum: bd85dcc0e76e0eb0c3d56382ec140f08d25ff4068cda9d0e360bb78fb176cb726d0beab82dc0e8694cafd09f55fee7622b8bcb240afa5fad301f4ed3eebb4f47 + languageName: node + linkType: hard + +"jest-regex-util@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-regex-util@npm:27.5.1" + checksum: d45ca7a9543616a34f7f3079337439cf07566e677a096472baa2810e274b9808b76767c97b0a4029b8a5b82b9d256dee28ef9ad4138b2b9e5933f6fac106c418 + languageName: node + linkType: hard + +"jest-resolve-dependencies@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-resolve-dependencies@npm:27.5.1" + dependencies: + "@jest/types": ^27.5.1 + jest-regex-util: ^27.5.1 + jest-snapshot: ^27.5.1 + checksum: c67af97afad1da88f5530317c732bbd1262d1225f6cd7f4e4740a5db48f90ab0bd8564738ac70d1a43934894f9aef62205c1b8f8ee89e5c7a737e6a121ee4c25 + languageName: node + linkType: hard + +"jest-resolve@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-resolve@npm:27.5.1" + dependencies: + "@jest/types": ^27.5.1 + chalk: ^4.0.0 + graceful-fs: ^4.2.9 + jest-haste-map: ^27.5.1 + jest-pnp-resolver: ^1.2.2 + jest-util: ^27.5.1 + jest-validate: ^27.5.1 + resolve: ^1.20.0 + resolve.exports: ^1.1.0 + slash: ^3.0.0 + checksum: 735830e7265b20a348029738680bb2f6e37f80ecea86cda869a4c318ba3a45d39c7a3a873a22f7f746d86258c50ead6e7f501de043e201c095d7ba628a1c440f + languageName: node + linkType: hard + +"jest-runner@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-runner@npm:27.5.1" + dependencies: + "@jest/console": ^27.5.1 + "@jest/environment": ^27.5.1 + "@jest/test-result": ^27.5.1 + "@jest/transform": ^27.5.1 + "@jest/types": ^27.5.1 + "@types/node": "*" + chalk: ^4.0.0 + emittery: ^0.8.1 + graceful-fs: ^4.2.9 + jest-docblock: ^27.5.1 + jest-environment-jsdom: ^27.5.1 + jest-environment-node: ^27.5.1 + jest-haste-map: ^27.5.1 + jest-leak-detector: ^27.5.1 + jest-message-util: ^27.5.1 + jest-resolve: ^27.5.1 + jest-runtime: ^27.5.1 + jest-util: ^27.5.1 + jest-worker: ^27.5.1 + source-map-support: ^0.5.6 + throat: ^6.0.1 + checksum: 5bbe6cf847dd322b3332ec9d6977b54f91bd5f72ff620bc1a0192f0f129deda8aa7ca74c98922187a7aa87d8e0ce4f6c50e99a7ccb2a310bf4d94be2e0c3ce8e + languageName: node + linkType: hard + +"jest-runtime@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-runtime@npm:27.5.1" + dependencies: + "@jest/environment": ^27.5.1 + "@jest/fake-timers": ^27.5.1 + "@jest/globals": ^27.5.1 + "@jest/source-map": ^27.5.1 + "@jest/test-result": ^27.5.1 + "@jest/transform": ^27.5.1 + "@jest/types": ^27.5.1 + 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: ^27.5.1 + jest-message-util: ^27.5.1 + jest-mock: ^27.5.1 + jest-regex-util: ^27.5.1 + jest-resolve: ^27.5.1 + jest-snapshot: ^27.5.1 + jest-util: ^27.5.1 + slash: ^3.0.0 + strip-bom: ^4.0.0 + checksum: 929e3df0c53dab43f831f2af4e2996b22aa8cb2d6d483919d6b0426cbc100098fd5b777b998c6568b77f8c4d860b2e83127514292ff61416064f5ef926492386 + languageName: node + linkType: hard + +"jest-serializer@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-serializer@npm:27.5.1" + dependencies: + "@types/node": "*" + graceful-fs: ^4.2.9 + checksum: 803e03a552278610edc6753c0dd9fa5bb5cd3ca47414a7b2918106efb62b79fd5e9ae785d0a21f12a299fa599fea8acc1fa6dd41283328cee43962cf7df9bb44 + languageName: node + linkType: hard + +"jest-snapshot@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-snapshot@npm:27.5.1" + dependencies: + "@babel/core": ^7.7.2 + "@babel/generator": ^7.7.2 + "@babel/plugin-syntax-typescript": ^7.7.2 + "@babel/traverse": ^7.7.2 + "@babel/types": ^7.0.0 + "@jest/transform": ^27.5.1 + "@jest/types": ^27.5.1 + "@types/babel__traverse": ^7.0.4 + "@types/prettier": ^2.1.5 + babel-preset-current-node-syntax: ^1.0.0 + chalk: ^4.0.0 + expect: ^27.5.1 + graceful-fs: ^4.2.9 + jest-diff: ^27.5.1 + jest-get-type: ^27.5.1 + jest-haste-map: ^27.5.1 + jest-matcher-utils: ^27.5.1 + jest-message-util: ^27.5.1 + jest-util: ^27.5.1 + natural-compare: ^1.4.0 + pretty-format: ^27.5.1 + semver: ^7.3.2 + checksum: a5cfadf0d21cd76063925d1434bc076443ed6d87847d0e248f0b245f11db3d98ff13e45cc03b15404027dabecd712d925f47b6eae4f64986f688640a7d362514 + languageName: node + linkType: hard + +"jest-util@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-util@npm:27.5.1" + dependencies: + "@jest/types": ^27.5.1 + "@types/node": "*" + chalk: ^4.0.0 + ci-info: ^3.2.0 + graceful-fs: ^4.2.9 + picomatch: ^2.2.3 + checksum: ac8d122f6daf7a035dcea156641fd3701aeba245417c40836a77e35b3341b9c02ddc5d904cfcd4ddbaa00ab854da76d3b911870cafdcdbaff90ea471de26c7d7 + languageName: node + linkType: hard + +"jest-validate@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-validate@npm:27.5.1" + dependencies: + "@jest/types": ^27.5.1 + camelcase: ^6.2.0 + chalk: ^4.0.0 + jest-get-type: ^27.5.1 + leven: ^3.1.0 + pretty-format: ^27.5.1 + checksum: 82e870f8ee7e4fb949652711b1567f05ae31c54be346b0899e8353e5c20fad7692b511905b37966945e90af8dc0383eb41a74f3ffefb16140ea4f9164d841412 + languageName: node + linkType: hard + +"jest-watcher@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-watcher@npm:27.5.1" + dependencies: + "@jest/test-result": ^27.5.1 + "@jest/types": ^27.5.1 + "@types/node": "*" + ansi-escapes: ^4.2.1 + chalk: ^4.0.0 + jest-util: ^27.5.1 + string-length: ^4.0.1 + checksum: 191c4e9c278c0902ade1a8a80883ac244963ba3e6e78607a3d5f729ccca9c6e71fb3b316f87883658132641c5d818aa84202585c76752e03c539e6cbecb820bd + languageName: node + linkType: hard + +"jest-worker@npm:^26.2.1": + version: 26.6.2 + resolution: "jest-worker@npm:26.6.2" + dependencies: + "@types/node": "*" + merge-stream: ^2.0.0 + supports-color: ^7.0.0 + checksum: f9afa3b88e3f12027901e4964ba3ff048285b5783b5225cab28fac25b4058cea8ad54001e9a1577ee2bed125fac3ccf5c80dc507b120300cc1bbcb368796533e + languageName: node + linkType: hard + +"jest-worker@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-worker@npm:27.5.1" + dependencies: + "@types/node": "*" + merge-stream: ^2.0.0 + supports-color: ^8.0.0 + checksum: 98cd68b696781caed61c983a3ee30bf880b5bd021c01d98f47b143d4362b85d0737f8523761e2713d45e18b4f9a2b98af1eaee77afade4111bb65c77d6f7c980 + languageName: node + linkType: hard + +"jest@npm:^27.4.1": + version: 27.5.1 + resolution: "jest@npm:27.5.1" + dependencies: + "@jest/core": ^27.5.1 + import-local: ^3.0.2 + jest-cli: ^27.5.1 + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + bin: + jest: bin/jest.js + checksum: 96f1d69042b3c6dfc695f2a4e4b0db38af6fb78582ad1a02beaa57cfcd77cbd31567d7d865c1c85709b7c3e176eefa3b2035ffecd646005f15d8ef528eccf205 + languageName: node + linkType: hard + +"js-cleanup@npm:^1.2.0": + version: 1.2.0 + resolution: "js-cleanup@npm:1.2.0" + dependencies: + magic-string: ^0.25.7 + perf-regexes: ^1.0.1 + skip-regex: ^1.0.2 + checksum: eea17bce5157f66c1415a5e537f89dfbc15c4e4a36e638bc09db48e70ca0efd6f85331d8f6154817a17057304d56db82478c8dfdac8ee39dc481302f93abd59d languageName: node linkType: hard @@ -9525,6 +12557,13 @@ __metadata: languageName: node linkType: hard +"js-sdsl@npm:^4.1.4": + version: 4.1.4 + resolution: "js-sdsl@npm:4.1.4" + checksum: 1977cea4ab18e0e03e28bdf0371d8b443fad65ca0988e0faa216406faf6bb943714fe8f7cc7a5bfe5f35ba3d94ddae399f4d10200f547f2c3320688b0670d726 + languageName: node + linkType: hard + "js-sha3@npm:0.5.7, js-sha3@npm:^0.5.7": version: 0.5.7 resolution: "js-sha3@npm:0.5.7" @@ -9595,6 +12634,46 @@ __metadata: languageName: node linkType: hard +"jsdom@npm:^16.6.0": + version: 16.7.0 + resolution: "jsdom@npm:16.7.0" + dependencies: + abab: ^2.0.5 + acorn: ^8.2.4 + acorn-globals: ^6.0.0 + cssom: ^0.4.4 + cssstyle: ^2.3.0 + data-urls: ^2.0.0 + decimal.js: ^10.2.1 + domexception: ^2.0.1 + escodegen: ^2.0.0 + form-data: ^3.0.0 + html-encoding-sniffer: ^2.0.1 + http-proxy-agent: ^4.0.1 + https-proxy-agent: ^5.0.0 + is-potential-custom-element-name: ^1.0.1 + nwsapi: ^2.2.0 + parse5: 6.0.1 + saxes: ^5.0.1 + symbol-tree: ^3.2.4 + tough-cookie: ^4.0.0 + w3c-hr-time: ^1.0.2 + w3c-xmlserializer: ^2.0.0 + webidl-conversions: ^6.1.0 + whatwg-encoding: ^1.0.5 + whatwg-mimetype: ^2.3.0 + whatwg-url: ^8.5.0 + ws: ^7.4.6 + xml-name-validator: ^3.0.0 + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: 454b83371857000763ed31130a049acd1b113e3b927e6dcd75c67ddc30cdd242d7ebcac5c2294b7a1a6428155cb1398709c573b3c6d809218692ea68edd93370 + languageName: node + linkType: hard + "jsesc@npm:^1.3.0": version: 1.3.0 resolution: "jsesc@npm:1.3.0" @@ -9604,6 +12683,15 @@ __metadata: languageName: node linkType: hard +"jsesc@npm:^2.5.1": + version: 2.5.2 + resolution: "jsesc@npm:2.5.2" + bin: + jsesc: bin/jsesc + checksum: 4dc190771129e12023f729ce20e1e0bfceac84d73a85bc3119f7f938843fe25a4aeccb54b6494dce26fcf263d815f5f31acdefac7cc9329efb8422a4f4d9fa9d + languageName: node + linkType: hard + "jsesc@npm:~0.5.0": version: 0.5.0 resolution: "jsesc@npm:0.5.0" @@ -9724,6 +12812,33 @@ __metadata: languageName: node linkType: hard +"json5@npm:^1.0.1": + version: 1.0.1 + resolution: "json5@npm:1.0.1" + dependencies: + minimist: ^1.2.0 + bin: + json5: lib/cli.js + checksum: e76ea23dbb8fc1348c143da628134a98adf4c5a4e8ea2adaa74a80c455fc2cdf0e2e13e6398ef819bfe92306b610ebb2002668ed9fc1af386d593691ef346fc3 + languageName: node + linkType: hard + +"json5@npm:^2.2.1": + version: 2.2.1 + resolution: "json5@npm:2.2.1" + bin: + json5: lib/cli.js + checksum: 74b8a23b102a6f2bf2d224797ae553a75488b5adbaee9c9b6e5ab8b510a2fc6e38f876d4c77dea672d4014a44b2399e15f2051ac2b37b87f74c0c7602003543b + languageName: node + linkType: hard + +"jsonc-parser@npm:^3.0.0": + version: 3.2.0 + resolution: "jsonc-parser@npm:3.2.0" + checksum: 946dd9a5f326b745aa326d48a7257e3f4a4b62c5e98ec8e49fa2bdd8d96cef7e6febf1399f5c7016114fd1f68a1c62c6138826d5d90bc650448e3cf0951c53c7 + languageName: node + linkType: hard + "jsonfile@npm:^2.1.0": version: 2.4.0 resolution: "jsonfile@npm:2.4.0" @@ -9897,6 +13012,13 @@ __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 + "lcid@npm:^1.0.0": version: 1.0.0 resolution: "lcid@npm:1.0.0" @@ -10105,6 +13227,13 @@ __metadata: 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.3.0, levn@npm:~0.3.0": version: 0.3.0 resolution: "levn@npm:0.3.0" @@ -10139,7 +13268,7 @@ __metadata: languageName: node linkType: hard -"lint-staged@npm:^12.3.2": +"lint-staged@npm:^12.1.7": version: 12.5.0 resolution: "lint-staged@npm:12.5.0" dependencies: @@ -10249,6 +13378,13 @@ __metadata: languageName: node linkType: hard +"lodash.debounce@npm:^4.0.8": + version: 4.0.8 + resolution: "lodash.debounce@npm:4.0.8" + checksum: a3f527d22c548f43ae31c861ada88b2637eb48ac6aa3eb56e82d44917971b8aa96fbb37aa60efea674dc4ee8c42074f90f7b1f772e9db375435f6c83a19b3bc6 + languageName: node + linkType: hard + "lodash.map@npm:^4.5.1": version: 4.6.0 resolution: "lodash.map@npm:4.6.0" @@ -10277,7 +13413,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:4.17.21, lodash@npm:^4.17.11, lodash@npm:^4.17.12, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21, lodash@npm:^4.17.4": +"lodash@npm:4.17.21, lodash@npm:^4.17.11, lodash@npm:^4.17.12, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.7.0": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 @@ -10446,6 +13582,22 @@ __metadata: languageName: node linkType: hard +"lunr@npm:^2.3.9": + version: 2.3.9 + resolution: "lunr@npm:2.3.9" + checksum: 176719e24fcce7d3cf1baccce9dd5633cd8bdc1f41ebe6a180112e5ee99d80373fe2454f5d4624d437e5a8319698ca6837b9950566e15d2cae5f2a543a3db4b8 + languageName: node + linkType: hard + +"magic-string@npm:^0.25.7": + version: 0.25.9 + resolution: "magic-string@npm:0.25.9" + dependencies: + sourcemap-codec: ^1.4.8 + checksum: 9a0e55a15c7303fc360f9572a71cffba1f61451bc92c5602b1206c9d17f492403bf96f946dfce7483e66822d6b74607262e24392e87b0ac27b786e69a40e9b1a + languageName: node + linkType: hard + "make-dir@npm:^1.0.0": version: 1.3.0 resolution: "make-dir@npm:1.3.0" @@ -10465,6 +13617,15 @@ __metadata: 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" + dependencies: + semver: ^6.0.0 + checksum: 484200020ab5a1fdf12f393fe5f385fc8e4378824c940fba1729dcd198ae4ff24867bc7a5646331e50cead8abff5d9270c456314386e629acec6dff4b8016b78 + languageName: node + linkType: hard + "make-error@npm:^1.1.1": version: 1.3.6 resolution: "make-error@npm:1.3.6" @@ -10496,6 +13657,15 @@ __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-cache@npm:^0.2.2": version: 0.2.2 resolution: "map-cache@npm:0.2.2" @@ -10533,6 +13703,15 @@ __metadata: languageName: node linkType: hard +"marked@npm:^4.0.16": + version: 4.1.0 + resolution: "marked@npm:4.1.0" + bin: + marked: bin/marked.js + checksum: f0b3732a9d6208c933541342e60eb78029bd046c143a6ade0e76ed80b6174f92b186205a9dfe805e435070806ec475b0e87e62d04348eafd2f761c24281b192a + languageName: node + linkType: hard + "mcl-wasm@npm:^0.7.1": version: 0.7.9 resolution: "mcl-wasm@npm:0.7.9" @@ -10842,7 +14021,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^5.0.1": +"minimatch@npm:^5.0.1, minimatch@npm:^5.1.0": version: 5.1.0 resolution: "minimatch@npm:5.1.0" dependencies: @@ -11367,6 +14546,20 @@ __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.6": + version: 2.0.6 + resolution: "node-releases@npm:2.0.6" + checksum: e86a926dc9fbb3b41b4c4a89d998afdf140e20a4e8dbe6c0a807f7b2948b42ea97d7fd3ad4868041487b6e9ee98409829c6e4d84a734a4215dff060a7fbeb4bf + languageName: node + linkType: hard + "nofilter@npm:^1.0.4": version: 1.0.4 resolution: "nofilter@npm:1.0.4" @@ -11490,6 +14683,13 @@ __metadata: languageName: node linkType: hard +"nwsapi@npm:^2.2.0": + version: 2.2.2 + resolution: "nwsapi@npm:2.2.2" + checksum: 43769106292bc95f776756ca2f3513dab7b4d506a97c67baec32406447841a35f65f29c1f95ab5d42785210fd41668beed33ca16fa058780be43b101ad73e205 + languageName: node + linkType: hard + "oauth-sign@npm:~0.9.0": version: 0.9.0 resolution: "oauth-sign@npm:0.9.0" @@ -11567,7 +14767,7 @@ __metadata: languageName: node linkType: hard -"object.assign@npm:^4.1.4": +"object.assign@npm:^4.1.0, object.assign@npm:^4.1.2, object.assign@npm:^4.1.4": version: 4.1.4 resolution: "object.assign@npm:4.1.4" dependencies: @@ -11579,6 +14779,17 @@ __metadata: languageName: node linkType: hard +"object.entries@npm:^1.1.5": + version: 1.1.5 + resolution: "object.entries@npm:1.1.5" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.3 + es-abstract: ^1.19.1 + checksum: d658696f74fd222060d8428d2a9fda2ce736b700cb06f6bdf4a16a1892d145afb746f453502b2fa55d1dca8ead6f14ddbcf66c545df45adadea757a6c4cd86c7 + languageName: node + linkType: hard + "object.getownpropertydescriptors@npm:^2.0.3, object.getownpropertydescriptors@npm:^2.1.1": version: 2.1.4 resolution: "object.getownpropertydescriptors@npm:2.1.4" @@ -11600,6 +14811,17 @@ __metadata: languageName: node linkType: hard +"object.values@npm:^1.1.5": + version: 1.1.5 + resolution: "object.values@npm:1.1.5" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.3 + es-abstract: ^1.19.1 + checksum: 0f17e99741ebfbd0fa55ce942f6184743d3070c61bd39221afc929c8422c4907618c8da694c6915bc04a83ab3224260c779ba37fc07bb668bdc5f33b66a902a4 + languageName: node + linkType: hard + "obliterator@npm:^2.0.0": version: 2.0.4 resolution: "obliterator@npm:2.0.4" @@ -11940,7 +15162,7 @@ __metadata: languageName: node linkType: hard -"parse-json@npm:^5.0.0": +"parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": version: 5.2.0 resolution: "parse-json@npm:5.2.0" dependencies: @@ -11959,6 +15181,13 @@ __metadata: languageName: node linkType: hard +"parse5@npm:6.0.1": + version: 6.0.1 + resolution: "parse5@npm:6.0.1" + checksum: 7d569a176c5460897f7c8f3377eff640d54132b9be51ae8a8fa4979af940830b2b0c296ce75e5bd8f4041520aadde13170dbdec44889975f906098ea0002f4bd + languageName: node + linkType: hard + "parseurl@npm:~1.3.3": version: 1.3.3 resolution: "parseurl@npm:1.3.3" @@ -12062,6 +15291,15 @@ __metadata: languageName: node linkType: hard +"path-is-network-drive@npm:^1.0.16": + version: 1.0.16 + resolution: "path-is-network-drive@npm:1.0.16" + dependencies: + tslib: ^2 + checksum: 8414eb2da09164b96e044a877ddf4c991be3d161f918fc4c27023236b6e78b8d6b27a6e7c7af02bf1a0205ff7330d7bca5c512e6adc2274ccc3822a42850540d + languageName: node + linkType: hard + "path-key@npm:^2.0.1": version: 2.0.1 resolution: "path-key@npm:2.0.1" @@ -12083,6 +15321,15 @@ __metadata: languageName: node linkType: hard +"path-strip-sep@npm:^1.0.13": + version: 1.0.13 + resolution: "path-strip-sep@npm:1.0.13" + dependencies: + tslib: ^2 + checksum: 6935b9218634a68489a9fb3ea3cd6de26c0f82938d1aff95386ffcbac09facb0a488ce1b12d4f10ff23e3e218f33a52a5c1e9b8664f928a64ea8dc51cc2b8a87 + languageName: node + linkType: hard + "path-to-regexp@npm:0.1.7": version: 0.1.7 resolution: "path-to-regexp@npm:0.1.7" @@ -12135,6 +15382,13 @@ __metadata: languageName: node linkType: hard +"perf-regexes@npm:^1.0.1": + version: 1.0.1 + resolution: "perf-regexes@npm:1.0.1" + checksum: 28dca5634a4be56133db6a99b4d0ce1f4c70dad77075c0de1f8359396c14ccebd861194430eac09defcd6b8d111a0724cbbfdafb611395e1cae50fec591275bd + languageName: node + linkType: hard + "performance-now@npm:^2.1.0": version: 2.1.0 resolution: "performance-now@npm:2.1.0" @@ -12142,7 +15396,14 @@ __metadata: languageName: node linkType: hard -"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1": +"picocolors@npm:^1.0.0": + version: 1.0.0 + resolution: "picocolors@npm:1.0.0" + checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 + languageName: node + linkType: hard + +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf @@ -12195,6 +15456,31 @@ __metadata: languageName: node linkType: hard +"pirates@npm:^4.0.4": + version: 4.0.5 + resolution: "pirates@npm:4.0.5" + checksum: c9994e61b85260bec6c4fc0307016340d9b0c4f4b6550a957afaaff0c9b1ad58fbbea5cfcf083860a25cb27a375442e2b0edf52e2e1e40e69934e08dcc52d227 + languageName: node + linkType: hard + +"pkg-dir@npm:< 6 >= 5": + version: 5.0.0 + resolution: "pkg-dir@npm:5.0.0" + dependencies: + find-up: ^5.0.0 + checksum: b167bb8dac7bbf22b1d5e30ec223e6b064b84b63010c9d49384619a36734caf95ed23ad23d4f9bd975e8e8082b60a83395f43a89bb192df53a7c25a38ecb57d9 + 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" + dependencies: + find-up: ^4.0.0 + checksum: 9863e3f35132bf99ae1636d31ff1e1e3501251d480336edb1c211133c8d58906bed80f154a1d723652df1fda91e01c7442c2eeaf9dc83157c7ae89087e43c8d6 + languageName: node + linkType: hard + "posix-character-classes@npm:^0.1.0": version: 0.1.1 resolution: "posix-character-classes@npm:0.1.1" @@ -12280,6 +15566,17 @@ __metadata: languageName: node linkType: hard +"pretty-format@npm:^27.0.0, pretty-format@npm:^27.5.1": + version: 27.5.1 + resolution: "pretty-format@npm:27.5.1" + dependencies: + ansi-regex: ^5.0.1 + ansi-styles: ^5.0.0 + react-is: ^17.0.1 + checksum: cf610cffcb793885d16f184a62162f2dd0df31642d9a18edf4ca298e909a8fe80bdbf556d5c9573992c102ce8bf948691da91bf9739bee0ffb6e79c8a8a6e088 + languageName: node + linkType: hard + "private@npm:^0.1.6, private@npm:^0.1.8": version: 0.1.8 resolution: "private@npm:0.1.8" @@ -12344,6 +15641,16 @@ __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 + "proxy-addr@npm:~2.0.7": version: 2.0.7 resolution: "proxy-addr@npm:2.0.7" @@ -12368,7 +15675,7 @@ __metadata: languageName: node linkType: hard -"psl@npm:^1.1.28": +"psl@npm:^1.1.28, psl@npm:^1.1.33": version: 1.9.0 resolution: "psl@npm:1.9.0" checksum: 20c4277f640c93d393130673f392618e9a8044c6c7bf61c53917a0fddb4952790f5f362c6c730a9c32b124813e173733f9895add8d26f566ed0ea0654b2e711d @@ -12532,6 +15839,13 @@ __metadata: languageName: node linkType: hard +"querystringify@npm:^2.1.1": + version: 2.2.0 + resolution: "querystringify@npm:2.2.0" + checksum: 5641ea231bad7ef6d64d9998faca95611ed4b11c2591a8cae741e178a974f6a8e0ebde008475259abe1621cb15e692404e6b6626e927f7b849d5c09392604b15 + languageName: node + linkType: hard + "queue-microtask@npm:^1.2.2, queue-microtask@npm:^1.2.3": version: 1.2.3 resolution: "queue-microtask@npm:1.2.3" @@ -12603,6 +15917,13 @@ __metadata: languageName: node linkType: hard +"react-is@npm:^17.0.1": + version: 17.0.2 + resolution: "react-is@npm:17.0.2" + checksum: 9d6d111d8990dc98bc5402c1266a808b0459b5d54830bbea24c12d908b536df7883f268a7868cfaedde3dd9d4e0d574db456f84d2e6df9c4526f99bb4b5344d8 + languageName: node + linkType: hard + "read-pkg-up@npm:^1.0.1": version: 1.0.1 resolution: "read-pkg-up@npm:1.0.1" @@ -12750,7 +16071,16 @@ __metadata: languageName: node linkType: hard -"regenerate@npm:^1.2.1": +"regenerate-unicode-properties@npm:^10.1.0": + version: 10.1.0 + resolution: "regenerate-unicode-properties@npm:10.1.0" + dependencies: + regenerate: ^1.4.2 + checksum: b1a8929588433ab8b9dc1a34cf3665b3b472f79f2af6ceae00d905fc496b332b9af09c6718fb28c730918f19a00dc1d7310adbaa9b72a2ec7ad2f435da8ace17 + languageName: node + linkType: hard + +"regenerate@npm:^1.2.1, regenerate@npm:^1.4.2": version: 1.4.2 resolution: "regenerate@npm:1.4.2" checksum: 3317a09b2f802da8db09aa276e469b57a6c0dd818347e05b8862959c6193408242f150db5de83c12c3fa99091ad95fb42a6db2c3329bfaa12a0ea4cbbeb30cb0 @@ -12764,6 +16094,13 @@ __metadata: languageName: node linkType: hard +"regenerator-runtime@npm:^0.13.4": + version: 0.13.9 + resolution: "regenerator-runtime@npm:0.13.9" + checksum: 65ed455fe5afd799e2897baf691ca21c2772e1a969d19bb0c4695757c2d96249eb74ee3553ea34a91062b2a676beedf630b4c1551cc6299afb937be1426ec55e + languageName: node + linkType: hard + "regenerator-transform@npm:^0.10.0": version: 0.10.1 resolution: "regenerator-transform@npm:0.10.1" @@ -12775,6 +16112,15 @@ __metadata: languageName: node linkType: hard +"regenerator-transform@npm:^0.15.0": + version: 0.15.0 + resolution: "regenerator-transform@npm:0.15.0" + dependencies: + "@babel/runtime": ^7.8.4 + checksum: 86e54849ab1167618d28bb56d214c52a983daf29b0d115c976d79840511420049b6b42c9ebdf187defa8e7129bdd74b6dd266420d0d3868c9fa7f793b5d15d49 + languageName: node + linkType: hard + "regex-not@npm:^1.0.0, regex-not@npm:^1.0.2": version: 1.0.2 resolution: "regex-not@npm:1.0.2" @@ -12821,6 +16167,20 @@ __metadata: languageName: node linkType: hard +"regexpu-core@npm:^5.1.0": + version: 5.2.1 + resolution: "regexpu-core@npm:5.2.1" + dependencies: + regenerate: ^1.4.2 + regenerate-unicode-properties: ^10.1.0 + regjsgen: ^0.7.1 + regjsparser: ^0.9.1 + unicode-match-property-ecmascript: ^2.0.0 + unicode-match-property-value-ecmascript: ^2.0.0 + checksum: c1244db79f7a4597414cd7fdf5171fa73905f0cbc684385c78127fc6198f9cade8fe829a1c4036c8ec57ac75b1ffb8c196451abdd2e153f26a4d8043fa10bbb3 + languageName: node + linkType: hard + "regjsgen@npm:^0.2.0": version: 0.2.0 resolution: "regjsgen@npm:0.2.0" @@ -12828,6 +16188,13 @@ __metadata: languageName: node linkType: hard +"regjsgen@npm:^0.7.1": + version: 0.7.1 + resolution: "regjsgen@npm:0.7.1" + checksum: 7cac399921c58db8e16454869283ff66871531180218064fa938ac05c11c2976792a00706c3c78bbc625e1d793ca373065ea90564e06189a751a7b4ae33acadc + languageName: node + linkType: hard + "regjsparser@npm:^0.1.4": version: 0.1.5 resolution: "regjsparser@npm:0.1.5" @@ -12839,6 +16206,17 @@ __metadata: languageName: node linkType: hard +"regjsparser@npm:^0.9.1": + version: 0.9.1 + resolution: "regjsparser@npm:0.9.1" + dependencies: + jsesc: ~0.5.0 + bin: + regjsparser: bin/parser + checksum: 5e1b76afe8f1d03c3beaf9e0d935dd467589c3625f6d65fb8ffa14f224d783a0fed4bf49c2c1b8211043ef92b6117313419edf055a098ed8342e340586741afc + languageName: node + linkType: hard + "repeat-element@npm:^1.1.2": version: 1.1.4 resolution: "repeat-element@npm:1.1.4" @@ -12967,6 +16345,13 @@ __metadata: languageName: node linkType: hard +"requires-port@npm:^1.0.0": + version: 1.0.0 + resolution: "requires-port@npm:1.0.0" + checksum: eee0e303adffb69be55d1a214e415cf42b7441ae858c76dfc5353148644f6fd6e698926fc4643f510d5c126d12a705e7c8ed7e38061113bdf37547ab356797ff + languageName: node + linkType: hard + "resolve-alpn@npm:^1.0.0, resolve-alpn@npm:^1.2.0": version: 1.2.1 resolution: "resolve-alpn@npm:1.2.1" @@ -12974,6 +16359,15 @@ __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-dir@npm:^1.0.0, resolve-dir@npm:^1.0.1": version: 1.0.1 resolution: "resolve-dir@npm:1.0.1" @@ -13021,6 +16415,13 @@ __metadata: languageName: node linkType: hard +"resolve.exports@npm:^1.1.0": + version: 1.1.0 + resolution: "resolve.exports@npm:1.1.0" + checksum: 52865af8edb088f6c7759a328584a5de6b226754f004b742523adcfe398cfbc4559515104bc2ae87b8e78b1e4de46c9baec400b3fb1f7d517b86d2d48a098a2d + languageName: node + linkType: hard + "resolve@npm:1.1.x": version: 1.1.7 resolution: "resolve@npm:1.1.7" @@ -13037,7 +16438,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.6, resolve@npm:^1.10.0, resolve@npm:^1.8.1, resolve@npm:~1.22.1": +"resolve@npm:^1.1.6, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.17.0, resolve@npm:^1.20.0, resolve@npm:^1.22.0, resolve@npm:^1.8.1, resolve@npm:~1.22.1": version: 1.22.1 resolution: "resolve@npm:1.22.1" dependencies: @@ -13066,7 +16467,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.8.1#~builtin, resolve@patch:resolve@~1.22.1#~builtin": +"resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.17.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.0#~builtin, resolve@patch:resolve@^1.8.1#~builtin, resolve@patch:resolve@~1.22.1#~builtin": version: 1.22.1 resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin::version=1.22.1&hash=07638b" dependencies: @@ -13176,7 +16577,7 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:^3.0.2": +"rimraf@npm:^3.0.0, rimraf@npm:^3.0.2": version: 3.0.2 resolution: "rimraf@npm:3.0.2" dependencies: @@ -13208,6 +16609,72 @@ __metadata: languageName: node linkType: hard +"rollup-plugin-cleanup@npm:^3.2.1": + version: 3.2.1 + resolution: "rollup-plugin-cleanup@npm:3.2.1" + dependencies: + js-cleanup: ^1.2.0 + rollup-pluginutils: ^2.8.2 + peerDependencies: + rollup: ">=2.0" + checksum: e11a6ac0a697a9c17154073cf1e663e31e7b99e3e507dacccd58ea10e9c9ae4c10fe93ee93f68432b9beda8834a71b4dfa73700923f3415ecdac4ee283531c54 + languageName: node + linkType: hard + +"rollup-plugin-terser@npm:^7.0.2": + version: 7.0.2 + resolution: "rollup-plugin-terser@npm:7.0.2" + dependencies: + "@babel/code-frame": ^7.10.4 + jest-worker: ^26.2.1 + serialize-javascript: ^4.0.0 + terser: ^5.0.0 + peerDependencies: + rollup: ^2.0.0 + checksum: af84bb7a7a894cd00852b6486528dfb8653cf94df4c126f95f389a346f401d054b08c46bee519a2ab6a22b33804d1d6ac6d8c90b1b2bf8fffb097eed73fc3c72 + languageName: node + linkType: hard + +"rollup-plugin-typescript2@npm:^0.31.2": + version: 0.31.2 + resolution: "rollup-plugin-typescript2@npm:0.31.2" + dependencies: + "@rollup/pluginutils": ^4.1.2 + "@yarn-tool/resolve-package": ^1.0.40 + find-cache-dir: ^3.3.2 + fs-extra: ^10.0.0 + resolve: ^1.20.0 + tslib: ^2.3.1 + peerDependencies: + rollup: ">=1.26.3" + typescript: ">=2.4.0" + checksum: ceebc686195f8140ee64b89cbd3a284bda50435081bea8f55f404ea293c02ec9787e9147e33f8e078b2c4772d9f198e66f900f54ca77ccda63db9ec2511db665 + languageName: node + linkType: hard + +"rollup-pluginutils@npm:^2.8.2": + version: 2.8.2 + resolution: "rollup-pluginutils@npm:2.8.2" + dependencies: + estree-walker: ^0.6.1 + checksum: 339fdf866d8f4ff6e408fa274c0525412f7edb01dc46b5ccda51f575b7e0d20ad72965773376fb5db95a77a7fcfcab97bf841ec08dbadf5d6b08af02b7a2cf5e + languageName: node + linkType: hard + +"rollup@npm:^2.64.0": + version: 2.79.0 + resolution: "rollup@npm:2.79.0" + dependencies: + fsevents: ~2.3.2 + dependenciesMeta: + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 166f1ffea1898e157003920065b3a328e7012ea6808860ee8fe5d1ce94804fcce9985c95a3c0f7fe9c611aff0d09a70f073f1d6f715c8faba28e4e40f71ee3bb + languageName: node + linkType: hard + "run-async@npm:^2.2.0, run-async@npm:^2.4.0": version: 2.4.1 resolution: "run-async@npm:2.4.1" @@ -13297,6 +16764,15 @@ __metadata: languageName: node linkType: hard +"saxes@npm:^5.0.1": + version: 5.0.1 + resolution: "saxes@npm:5.0.1" + dependencies: + xmlchars: ^2.2.0 + checksum: 5636b55cf15f7cf0baa73f2797bf992bdcf75d1b39d82c0aa4608555c774368f6ac321cb641fd5f3d3ceb87805122cd47540da6a7b5960fe0dbdb8f8c263f000 + languageName: node + linkType: hard + "sc-istanbul@npm:^0.4.5": version: 0.4.6 resolution: "sc-istanbul@npm:0.4.6" @@ -13375,64 +16851,52 @@ __metadata: languageName: node linkType: hard -"semaphore@npm:>=1.0.1, semaphore@npm:^1.0.3, semaphore@npm:^1.1.0": - version: 1.1.0 - resolution: "semaphore@npm:1.1.0" - checksum: d2445d232ad9959048d4748ef54eb01bc7b60436be2b42fb7de20c4cffacf70eafeeecd3772c1baf408cfdce3805fa6618a4389590335671f18cde54ef3cfae4 - languageName: node - linkType: hard - -"semaphore@workspace:.": +"semaphore-protocol@workspace:.": version: 0.0.0-use.local - resolution: "semaphore@workspace:." + resolution: "semaphore-protocol@workspace:." dependencies: - "@commitlint/cli": ^16.1.0 - "@commitlint/config-conventional": ^16.0.0 - "@nomiclabs/hardhat-ethers": ^2.0.6 - "@nomiclabs/hardhat-etherscan": ^3.1.0 - "@nomiclabs/hardhat-waffle": ^2.0.3 - "@openzeppelin/contracts": 4.4.2 - "@semaphore-protocol/group": 2.2.0 - "@semaphore-protocol/identity": 2.0.0 - "@semaphore-protocol/proof": 2.3.1 - "@typechain/ethers-v5": ^10.0.0 - "@typechain/hardhat": ^6.0.0 - "@types/chai": ^4.3.0 + "@babel/core": ^7.16.7 + "@babel/preset-env": ^7.16.8 + "@babel/preset-typescript": ^7.17.12 + "@commitlint/cli": ^16.0.2 + "@commitlint/config-conventional": ^16.0.0 + "@rollup/plugin-typescript": ^8.3.0 "@types/download": ^8.0.1 - "@types/mocha": ^9.1.0 - "@types/node": ^17.0.12 + "@types/glob": ^7.2.0 + "@types/jest": ^27.4.0 + "@types/node": ^17.0.9 "@types/rimraf": ^3.0.2 - "@typescript-eslint/eslint-plugin": ^5.10.1 - "@typescript-eslint/parser": ^5.10.1 - "@zk-kit/incremental-merkle-tree.sol": 1.3.0 - chai: ^4.3.5 - circomlib: ^2.0.2 + "@typescript-eslint/eslint-plugin": ^5.9.1 + "@typescript-eslint/parser": ^5.9.1 + babel-jest: ^27.4.6 circomlibjs: ^0.0.8 commitizen: ^4.2.4 cz-conventional-changelog: ^3.3.0 - dotenv: ^14.3.2 - download: ^8.0.0 - eslint: ^8.7.0 + eslint: ^8.2.0 + eslint-config-airbnb-base: 15.0.0 + eslint-config-airbnb-typescript: ^16.1.0 eslint-config-prettier: ^8.3.0 - ethereum-waffle: ^3.4.4 - ethers: ^5.6.8 - hardhat: ^2.9.7 - hardhat-gas-reporter: ^1.0.8 - js-logger: ^1.6.1 - lint-staged: ^12.3.2 + eslint-plugin-import: ^2.25.2 + eslint-plugin-jest: ^25.7.0 + jest: ^27.4.1 + jest-config: ^27.4.7 + lint-staged: ^12.1.7 prettier: ^2.5.1 - prettier-plugin-solidity: ^1.0.0-beta.19 rimraf: ^3.0.2 - snarkjs: ^0.4.13 - solhint: ^3.3.6 - solhint-plugin-prettier: ^0.0.5 - solidity-coverage: ^0.7.21 + rollup: ^2.64.0 ts-node: ^10.4.0 - typechain: ^8.0.0 - typescript: ^4.5.5 + tslib: ^2.3.1 + typescript: ^4.5.4 languageName: unknown linkType: soft +"semaphore@npm:>=1.0.1, semaphore@npm:^1.0.3, semaphore@npm:^1.1.0": + version: 1.1.0 + resolution: "semaphore@npm:1.1.0" + checksum: d2445d232ad9959048d4748ef54eb01bc7b60436be2b42fb7de20c4cffacf70eafeeecd3772c1baf408cfdce3805fa6618a4389590335671f18cde54ef3cfae4 + languageName: node + linkType: hard + "semver@npm:2 || 3 || 4 || 5, semver@npm:^5.3.0, semver@npm:^5.5.0, semver@npm:^5.5.1, semver@npm:^5.6.0, semver@npm:^5.7.0": version: 5.7.1 resolution: "semver@npm:5.7.1" @@ -13442,7 +16906,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.3.7, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7": +"semver@npm:7.3.7, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7": version: 7.3.7 resolution: "semver@npm:7.3.7" dependencies: @@ -13453,7 +16917,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.3.0": +"semver@npm:^6.0.0, semver@npm:^6.1.1, semver@npm:^6.1.2, semver@npm:^6.3.0": version: 6.3.0 resolution: "semver@npm:6.3.0" bin: @@ -13501,6 +16965,15 @@ __metadata: languageName: node linkType: hard +"serialize-javascript@npm:^4.0.0": + version: 4.0.0 + resolution: "serialize-javascript@npm:4.0.0" + dependencies: + randombytes: ^2.1.0 + checksum: 3273b3394b951671fcf388726e9577021870dfbf85e742a1183fb2e91273e6101bdccea81ff230724f6659a7ee4cef924b0ff9baca32b79d9384ec37caf07302 + languageName: node + linkType: hard + "serve-static@npm:1.15.0": version: 1.15.0 resolution: "serve-static@npm:1.15.0" @@ -13640,6 +17113,17 @@ __metadata: languageName: node linkType: hard +"shiki@npm:^0.10.1": + version: 0.10.1 + resolution: "shiki@npm:0.10.1" + dependencies: + jsonc-parser: ^3.0.0 + vscode-oniguruma: ^1.6.1 + vscode-textmate: 5.2.0 + checksum: fb746f3cb3de7e545e3b10a6cb658d3938f840e4ccc9a3c90ceb7e69a8f89dbb432171faac1e9f02a03f103684dad88ee5e54b5c4964fa6b579fca6e8e26424d + languageName: node + linkType: hard + "side-channel@npm:^1.0.4": version: 1.0.4 resolution: "side-channel@npm:1.0.4" @@ -13676,6 +17160,20 @@ __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 + +"skip-regex@npm:^1.0.2": + version: 1.0.2 + resolution: "skip-regex@npm:1.0.2" + checksum: a121a045860343da183c678d53b44c78283b018db71d60af8524ffef179fa028ef419629bb65198bfb9c09854123e7019cfd4c23be4e175254a50c7563b26e8e + languageName: node + linkType: hard + "slash@npm:^1.0.0": version: 1.0.0 resolution: "slash@npm:1.0.0" @@ -14010,7 +17508,7 @@ __metadata: languageName: node linkType: hard -"source-map-support@npm:^0.5.13, source-map-support@npm:^0.5.16": +"source-map-support@npm:^0.5.13, source-map-support@npm:^0.5.16, source-map-support@npm:^0.5.6, source-map-support@npm:~0.5.20": version: 0.5.21 resolution: "source-map-support@npm:0.5.21" dependencies: @@ -14034,13 +17532,20 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.6.0, source-map@npm:^0.6.1": +"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.1": version: 0.6.1 resolution: "source-map@npm:0.6.1" checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 languageName: node linkType: hard +"source-map@npm:^0.7.3": + version: 0.7.4 + resolution: "source-map@npm:0.7.4" + checksum: 01cc5a74b1f0e1d626a58d36ad6898ea820567e87f18dfc9d24a9843a351aaa2ec09b87422589906d6ff1deed29693e176194dc88bcae7c9a852dc74b311dbf5 + languageName: node + linkType: hard + "source-map@npm:~0.2.0": version: 0.2.0 resolution: "source-map@npm:0.2.0" @@ -14050,6 +17555,13 @@ __metadata: languageName: node linkType: hard +"sourcemap-codec@npm:^1.4.8": + version: 1.4.8 + resolution: "sourcemap-codec@npm:1.4.8" + checksum: b57981c05611afef31605732b598ccf65124a9fcb03b833532659ac4d29ac0f7bfacbc0d6c5a28a03e84c7510e7e556d758d0bb57786e214660016fb94279316 + languageName: node + linkType: hard + "spdx-correct@npm:^3.0.0": version: 3.1.1 resolution: "spdx-correct@npm:3.1.1" @@ -14139,6 +17651,15 @@ __metadata: languageName: node linkType: hard +"stack-utils@npm:^2.0.3": + version: 2.0.5 + resolution: "stack-utils@npm:2.0.5" + dependencies: + escape-string-regexp: ^2.0.0 + checksum: 76b69da0f5b48a34a0f93c98ee2a96544d2c4ca2557f7eef5ddb961d3bdc33870b46f498a84a7c4f4ffb781df639840e7ebf6639164ed4da5e1aeb659615b9c7 + languageName: node + linkType: hard + "stacktrace-parser@npm:^0.1.10": version: 0.1.10 resolution: "stacktrace-parser@npm:0.1.10" @@ -14203,6 +17724,16 @@ __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@npm:^1.0.1": version: 1.0.2 resolution: "string-width@npm:1.0.2" @@ -14360,7 +17891,7 @@ __metadata: languageName: node linkType: hard -"strip-bom@npm:4.0.0": +"strip-bom@npm:4.0.0, strip-bom@npm:^4.0.0": version: 4.0.0 resolution: "strip-bom@npm:4.0.0" checksum: 9dbcfbaf503c57c06af15fe2c8176fb1bf3af5ff65003851a102749f875a6dbe0ab3b30115eccf6e805e9d756830d3e40ec508b62b3f1ddf3761a20ebe29d3f3 @@ -14376,6 +17907,13 @@ __metadata: languageName: node linkType: hard +"strip-bom@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-bom@npm:3.0.0" + checksum: 8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b + languageName: node + linkType: hard + "strip-dirs@npm:^2.0.0": version: 2.1.0 resolution: "strip-dirs@npm:2.1.0" @@ -14442,7 +17980,7 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:8.1.1": +"supports-color@npm:8.1.1, supports-color@npm:^8.0.0": version: 8.1.1 resolution: "supports-color@npm:8.1.1" dependencies: @@ -14476,7 +18014,7 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^7.1.0": +"supports-color@npm:^7.0.0, supports-color@npm:^7.1.0": version: 7.2.0 resolution: "supports-color@npm:7.2.0" dependencies: @@ -14492,6 +18030,16 @@ __metadata: languageName: node linkType: hard +"supports-hyperlinks@npm:^2.0.0": + version: 2.3.0 + resolution: "supports-hyperlinks@npm:2.3.0" + dependencies: + has-flag: ^4.0.0 + supports-color: ^7.0.0 + checksum: 9ee0de3c8ce919d453511b2b1588a8205bd429d98af94a01df87411391010fe22ca463f268c84b2ce2abad019dfff8452aa02806eeb5c905a8d7ad5c4f4c52b8 + languageName: node + linkType: hard + "supports-preserve-symlinks-flag@npm:^1.0.0": version: 1.0.0 resolution: "supports-preserve-symlinks-flag@npm:1.0.0" @@ -14518,6 +18066,13 @@ __metadata: languageName: node linkType: hard +"symbol-tree@npm:^3.2.4": + version: 3.2.4 + resolution: "symbol-tree@npm:3.2.4" + checksum: 6e8fc7e1486b8b54bea91199d9535bb72f10842e40c79e882fc94fb7b14b89866adf2fd79efa5ebb5b658bc07fb459ccce5ac0e99ef3d72f474e74aaf284029d + languageName: node + linkType: hard + "sync-request@npm:^6.0.0": version: 6.1.0 resolution: "sync-request@npm:6.1.0" @@ -14644,6 +18199,41 @@ __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 + +"terser@npm:^5.0.0": + version: 5.15.0 + resolution: "terser@npm:5.15.0" + dependencies: + "@jridgewell/source-map": ^0.3.2 + acorn: ^8.5.0 + commander: ^2.20.0 + source-map-support: ~0.5.20 + bin: + terser: bin/terser + checksum: b2358c989fcb76b4a1c265f60e175c950d3f776e5f619a9f58f54e8d2d792cd6b4cca86071834075f3b9943556d695357bafdd4ee2390de2fc9fd96ba3efa8c8 + 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 + "test-value@npm:^2.1.0": version: 2.1.0 resolution: "test-value@npm:2.1.0" @@ -14694,6 +18284,13 @@ __metadata: languageName: node linkType: hard +"throat@npm:^6.0.1": + version: 6.0.1 + resolution: "throat@npm:6.0.1" + checksum: 782d4171ee4e3cf947483ed2ff1af3e17cc4354c693b9d339284f61f99fbc401d171e0b0d2db3295bb7d447630333e9319c174ebd7ef315c6fb791db9675369c + languageName: node + linkType: hard + "through2@npm:^2.0.3": version: 2.0.5 resolution: "through2@npm:2.0.5" @@ -14745,6 +18342,13 @@ __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-buffer@npm:^1.1.1": version: 1.1.1 resolution: "to-buffer@npm:1.1.1" @@ -14759,6 +18363,13 @@ __metadata: languageName: node linkType: hard +"to-fast-properties@npm:^2.0.0": + version: 2.0.0 + resolution: "to-fast-properties@npm:2.0.0" + checksum: be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 + languageName: node + linkType: hard + "to-object-path@npm:^0.3.0": version: 0.3.0 resolution: "to-object-path@npm:0.3.0" @@ -14823,6 +18434,27 @@ __metadata: languageName: node linkType: hard +"tough-cookie@npm:^4.0.0": + version: 4.1.2 + resolution: "tough-cookie@npm:4.1.2" + dependencies: + psl: ^1.1.33 + punycode: ^2.1.1 + universalify: ^0.2.0 + url-parse: ^1.5.3 + checksum: a7359e9a3e875121a84d6ba40cc184dec5784af84f67f3a56d1d2ae39b87c0e004e6ba7c7331f9622a7d2c88609032473488b28fe9f59a1fec115674589de39a + languageName: node + linkType: hard + +"tr46@npm:^2.1.0": + version: 2.1.0 + resolution: "tr46@npm:2.1.0" + dependencies: + punycode: ^2.1.1 + checksum: ffe6049b9dca3ae329b059aada7f515b0f0064c611b39b51ff6b53897e954650f6f63d9319c6c008d36ead477c7b55e5f64c9dc60588ddc91ff720d64eb710b3 + languageName: node + linkType: hard + "tr46@npm:~0.0.3": version: 0.0.3 resolution: "tr46@npm:0.0.3" @@ -14956,6 +18588,18 @@ __metadata: languageName: node linkType: hard +"tsconfig-paths@npm:^3.14.1": + version: 3.14.1 + resolution: "tsconfig-paths@npm:3.14.1" + dependencies: + "@types/json5": ^0.0.29 + json5: ^1.0.1 + minimist: ^1.2.6 + strip-bom: ^3.0.0 + checksum: 8afa01c673ebb4782ba53d3a12df97fa837ce524f8ad38ee4e2b2fd57f5ac79abc21c574e9e9eb014d93efe7fe8214001b96233b5c6ea75bd1ea82afe17a4c6d + languageName: node + linkType: hard + "tslib@npm:^1.8.1, tslib@npm:^1.9.0, tslib@npm:^1.9.3": version: 1.14.1 resolution: "tslib@npm:1.14.1" @@ -14963,7 +18607,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.1.0": +"tslib@npm:^2, tslib@npm:^2.1.0, tslib@npm:^2.3.1": version: 2.4.0 resolution: "tslib@npm:2.4.0" checksum: 8c4aa6a3c5a754bf76aefc38026134180c053b7bd2f81338cb5e5ebf96fefa0f417bff221592bf801077f5bf990562f6264fecbc42cd3309b33872cb6fc3b113 @@ -15036,7 +18680,7 @@ __metadata: languageName: node linkType: hard -"type-detect@npm:^4.0.0, type-detect@npm:^4.0.5": +"type-detect@npm:4.0.8, type-detect@npm:^4.0.0, type-detect@npm:^4.0.5": version: 4.0.8 resolution: "type-detect@npm:4.0.8" checksum: 62b5628bff67c0eb0b66afa371bd73e230399a8d2ad30d852716efcc4656a7516904570cd8631a49a3ce57c10225adf5d0cbdcb47f6b0255fe6557c453925a15 @@ -15164,7 +18808,24 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^4.4.3, typescript@npm:^4.5.5, typescript@npm:^4.6.4": +"typedoc@npm:^0.22.11": + version: 0.22.18 + resolution: "typedoc@npm:0.22.18" + dependencies: + glob: ^8.0.3 + lunr: ^2.3.9 + marked: ^4.0.16 + minimatch: ^5.1.0 + shiki: ^0.10.1 + peerDependencies: + typescript: 4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x || 4.5.x || 4.6.x || 4.7.x + bin: + typedoc: bin/typedoc + checksum: b813d8129682f6ed5a4e96bacaf019e4da1d2744ca89fef850d6bb4c034616567ce67e6a7f5cfc5f00aac573f0b45d44b1427aafa262ab88dce6b460cb9e744c + languageName: node + linkType: hard + +"typescript@npm:^4.4.3, typescript@npm:^4.5.4, typescript@npm:^4.6.4": version: 4.8.3 resolution: "typescript@npm:4.8.3" bin: @@ -15174,7 +18835,7 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@^4.4.3#~builtin, typescript@patch:typescript@^4.5.5#~builtin, typescript@patch:typescript@^4.6.4#~builtin": +"typescript@patch:typescript@^4.4.3#~builtin, typescript@patch:typescript@^4.5.4#~builtin, typescript@patch:typescript@^4.6.4#~builtin": version: 4.8.3 resolution: "typescript@patch:typescript@npm%3A4.8.3#~builtin::version=4.8.3&hash=7ad353" bin: @@ -15280,6 +18941,37 @@ __metadata: languageName: node linkType: hard +"unicode-canonical-property-names-ecmascript@npm:^2.0.0": + version: 2.0.0 + resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" + checksum: 39be078afd014c14dcd957a7a46a60061bc37c4508ba146517f85f60361acf4c7539552645ece25de840e17e293baa5556268d091ca6762747fdd0c705001a45 + languageName: node + linkType: hard + +"unicode-match-property-ecmascript@npm:^2.0.0": + version: 2.0.0 + resolution: "unicode-match-property-ecmascript@npm:2.0.0" + dependencies: + unicode-canonical-property-names-ecmascript: ^2.0.0 + unicode-property-aliases-ecmascript: ^2.0.0 + checksum: 1f34a7434a23df4885b5890ac36c5b2161a809887000be560f56ad4b11126d433c0c1c39baf1016bdabed4ec54829a6190ee37aa24919aa116dc1a5a8a62965a + languageName: node + linkType: hard + +"unicode-match-property-value-ecmascript@npm:^2.0.0": + version: 2.0.0 + resolution: "unicode-match-property-value-ecmascript@npm:2.0.0" + checksum: 8fe6a09d9085a625cabcead5d95bdbc1a2d5d481712856092ce0347231e81a60b93a68f1b69e82b3076a07e415a72c708044efa2aa40ae23e2e7b5c99ed4a9ea + languageName: node + linkType: hard + +"unicode-property-aliases-ecmascript@npm:^2.0.0": + version: 2.1.0 + resolution: "unicode-property-aliases-ecmascript@npm:2.1.0" + checksum: 243524431893649b62cc674d877bd64ef292d6071dd2fd01ab4d5ad26efbc104ffcd064f93f8a06b7e4ec54c172bf03f6417921a0d8c3a9994161fe1f88f815b + languageName: node + linkType: hard + "union-value@npm:^1.0.0": version: 1.0.1 resolution: "union-value@npm:1.0.1" @@ -15317,6 +19009,13 @@ __metadata: languageName: node linkType: hard +"universalify@npm:^0.2.0": + version: 0.2.0 + resolution: "universalify@npm:0.2.0" + checksum: e86134cb12919d177c2353196a4cc09981524ee87abf621f7bc8d249dbbbebaec5e7d1314b96061497981350df786e4c5128dbf442eba104d6e765bc260678b5 + languageName: node + linkType: hard + "universalify@npm:^2.0.0": version: 2.0.0 resolution: "universalify@npm:2.0.0" @@ -15348,6 +19047,32 @@ __metadata: languageName: node linkType: hard +"upath2@npm:^3.1.13": + version: 3.1.15 + resolution: "upath2@npm:3.1.15" + dependencies: + "@types/node": "*" + path-is-network-drive: ^1.0.16 + path-strip-sep: ^1.0.13 + tslib: ^2 + checksum: ffea9e40854e93778f85d206a09886af7fa73075fdd39123cf5798c0485875c75134b92a88eb2deebfa5ac666707496045f31d1207e7d31ecf551f1fc3da5d53 + languageName: node + linkType: hard + +"update-browserslist-db@npm:^1.0.9": + version: 1.0.9 + resolution: "update-browserslist-db@npm:1.0.9" + dependencies: + escalade: ^3.1.1 + picocolors: ^1.0.0 + peerDependencies: + browserslist: ">= 4.21.0" + bin: + browserslist-lint: cli.js + checksum: f625899b236f6a4d7f62b56be1b8da230c5563d1fef84d3ef148f2e1a3f11a5a4b3be4fd7e3703e51274c116194017775b10afb4de09eb2c0d09d36b90f1f578 + languageName: node + linkType: hard + "uri-js@npm:^4.2.2": version: 4.4.1 resolution: "uri-js@npm:4.4.1" @@ -15373,6 +19098,16 @@ __metadata: languageName: node linkType: hard +"url-parse@npm:^1.5.3": + version: 1.5.10 + resolution: "url-parse@npm:1.5.10" + dependencies: + querystringify: ^2.1.1 + requires-port: ^1.0.0 + checksum: fbdba6b1d83336aca2216bbdc38ba658d9cfb8fc7f665eb8b17852de638ff7d1a162c198a8e4ed66001ddbf6c9888d41e4798912c62b4fd777a31657989f7bdf + languageName: node + linkType: hard + "url-set-query@npm:^1.0.0": version: 1.0.0 resolution: "url-set-query@npm:1.0.0" @@ -15503,6 +19238,17 @@ __metadata: languageName: node linkType: hard +"v8-to-istanbul@npm:^8.1.0": + version: 8.1.1 + resolution: "v8-to-istanbul@npm:8.1.1" + dependencies: + "@types/istanbul-lib-coverage": ^2.0.1 + convert-source-map: ^1.6.0 + source-map: ^0.7.3 + checksum: 54ce92bec2727879626f623d02c8d193f0c7e919941fa373ec135189a8382265117f5316ea317a1e12a5f9c13d84d8449052a731fe3306fa4beaafbfa4cab229 + languageName: node + linkType: hard + "validate-npm-package-license@npm:^3.0.1": version: 3.0.4 resolution: "validate-npm-package-license@npm:3.0.4" @@ -15538,6 +19284,47 @@ __metadata: languageName: node linkType: hard +"vscode-oniguruma@npm:^1.6.1": + version: 1.6.2 + resolution: "vscode-oniguruma@npm:1.6.2" + checksum: 6b754acdafd5b68242ea5938bb00a32effc16c77f471d4f0f337d879d0e8e592622998e2441f42d9a7ff799c1593f31c11f26ca8d9bf9917e3ca881d3c1f3e19 + languageName: node + linkType: hard + +"vscode-textmate@npm:5.2.0": + version: 5.2.0 + resolution: "vscode-textmate@npm:5.2.0" + checksum: 5449b42d451080f6f3649b66948f4b5ee4643c4e88cfe3558a3b31c84c78060cfdd288c4958c1690eaa5cd65d09992fa6b7c3bef9d4aa72b3651054a04624d20 + languageName: node + linkType: hard + +"w3c-hr-time@npm:^1.0.2": + version: 1.0.2 + resolution: "w3c-hr-time@npm:1.0.2" + dependencies: + browser-process-hrtime: ^1.0.0 + checksum: ec3c2dacbf8050d917bbf89537a101a08c2e333b4c19155f7d3bedde43529d4339db6b3d049d9610789cb915f9515f8be037e0c54c079e9d4735c50b37ed52b9 + languageName: node + linkType: hard + +"w3c-xmlserializer@npm:^2.0.0": + version: 2.0.0 + resolution: "w3c-xmlserializer@npm:2.0.0" + dependencies: + xml-name-validator: ^3.0.0 + checksum: ae25c51cf71f1fb2516df1ab33a481f83461a117565b95e3d0927432522323f93b1b2846cbb60196d337970c421adb604fc2d0d180c6a47a839da01db5b9973b + languageName: node + linkType: hard + +"walker@npm:^1.0.7": + version: 1.0.8 + resolution: "walker@npm:1.0.8" + dependencies: + makeerror: 1.0.12 + checksum: ad7a257ea1e662e57ef2e018f97b3c02a7240ad5093c392186ce0bcf1f1a60bbadd520d073b9beb921ed99f64f065efb63dfc8eec689a80e569f93c1c5d5e16c + languageName: node + linkType: hard + "wasmbuilder@npm:0.0.16": version: 0.0.16 resolution: "wasmbuilder@npm:0.0.16" @@ -15612,14 +19399,14 @@ __metadata: languageName: node linkType: hard -"web3-bzz@npm:1.7.5": - version: 1.7.5 - resolution: "web3-bzz@npm:1.7.5" +"web3-bzz@npm:1.8.0": + version: 1.8.0 + resolution: "web3-bzz@npm:1.8.0" dependencies: "@types/node": ^12.12.6 got: 12.1.0 swarm-js: ^0.1.40 - checksum: 80d43d55470e04064b0b89f215f44441470d4088ff9c31e8f2eb17cd4d8d3ce36cf37180de2d7cd1f21bf48a69501ae92f6fceed21d3e2634d8c1f29a31ee9fa + checksum: eba53991f4b2705c2f781bbf50ad964fb4dd65d657132ea240fb33fe84135b34da9a34ea2b7f16bcb78eb2433b130163967833d8f6ba8dcca40f6f90ea96b542 languageName: node linkType: hard @@ -15644,13 +19431,13 @@ __metadata: languageName: node linkType: hard -"web3-core-helpers@npm:1.7.5": - version: 1.7.5 - resolution: "web3-core-helpers@npm:1.7.5" +"web3-core-helpers@npm:1.8.0": + version: 1.8.0 + resolution: "web3-core-helpers@npm:1.8.0" dependencies: - web3-eth-iban: 1.7.5 - web3-utils: 1.7.5 - checksum: b7eafe44f7225961e76edefd53083df6b7e2621bc4fda6e44e08e64889f6a092b0da1c9a6a649fa4682c6f485a94b328b30f2cff26e9bd46513bfcfea0650696 + web3-eth-iban: 1.8.0 + web3-utils: 1.8.0 + checksum: f0af1cfb790b2c51ac29d19d0c77cc4caf8e363ffc069b4943bbd4ebf602bd04835af6c5c4f8b2601ee3c8157b8c658783a7ddf3cd82a9c1d9c15091a624249a languageName: node linkType: hard @@ -15681,16 +19468,16 @@ __metadata: languageName: node linkType: hard -"web3-core-method@npm:1.7.5": - version: 1.7.5 - resolution: "web3-core-method@npm:1.7.5" +"web3-core-method@npm:1.8.0": + version: 1.8.0 + resolution: "web3-core-method@npm:1.8.0" dependencies: "@ethersproject/transactions": ^5.6.2 - web3-core-helpers: 1.7.5 - web3-core-promievent: 1.7.5 - web3-core-subscriptions: 1.7.5 - web3-utils: 1.7.5 - checksum: d36e3554eb79805760ce5f49c9c580a57ecb8b488052ccc2f22918310dd7dca4e6d764992d73493d07ae60f7bde2cc4cf9548aa1cad5850b007c9b0d445d93c6 + web3-core-helpers: 1.8.0 + web3-core-promievent: 1.8.0 + web3-core-subscriptions: 1.8.0 + web3-utils: 1.8.0 + checksum: 5b73af8a34c94cfaee8dd69435fe78cc6eccde2e30c2d9632b4efa96d18b8ee13012d14ed6cfe4350db6f9ea2e04c53e55a47ac31db013728812427828338290 languageName: node linkType: hard @@ -15712,12 +19499,12 @@ __metadata: languageName: node linkType: hard -"web3-core-promievent@npm:1.7.5": - version: 1.7.5 - resolution: "web3-core-promievent@npm:1.7.5" +"web3-core-promievent@npm:1.8.0": + version: 1.8.0 + resolution: "web3-core-promievent@npm:1.8.0" dependencies: eventemitter3: 4.0.4 - checksum: 63108e24a35652a47b700df59bd9337658c5714e60660a5908439cc44c6a09240d56e9195b01fded536b0247d61c288fa3c93a02368aabafbcc0c0d30e2c01db + checksum: 0c39987322104e9243c79a33effbeeb9380dfc4ae711a7a07704bdd1610cf23b46dcb5a50164df0065159c5fb2f336f5700c522feff2299de8a12f431e1884b7 languageName: node linkType: hard @@ -15747,16 +19534,16 @@ __metadata: languageName: node linkType: hard -"web3-core-requestmanager@npm:1.7.5": - version: 1.7.5 - resolution: "web3-core-requestmanager@npm:1.7.5" +"web3-core-requestmanager@npm:1.8.0": + version: 1.8.0 + resolution: "web3-core-requestmanager@npm:1.8.0" dependencies: util: ^0.12.0 - web3-core-helpers: 1.7.5 - web3-providers-http: 1.7.5 - web3-providers-ipc: 1.7.5 - web3-providers-ws: 1.7.5 - checksum: 6e4675a34ae7d83f0719e44ebdb373345457f31caef90b6c62895f8505ce5ff0f448cabf34aee51ebf073d300332a5735b6a854efd41fcabf3ef54232976136c + web3-core-helpers: 1.8.0 + web3-providers-http: 1.8.0 + web3-providers-ipc: 1.8.0 + web3-providers-ws: 1.8.0 + checksum: df4d8295a9b0e328c63498c5cc8a828d2f1d7f7e6f6893daa1f4b1ce2de5ed9fd428838606ec267f47c83b610340909c30975e51ab7e07564a1ec598043fb3ba languageName: node linkType: hard @@ -15781,13 +19568,13 @@ __metadata: languageName: node linkType: hard -"web3-core-subscriptions@npm:1.7.5": - version: 1.7.5 - resolution: "web3-core-subscriptions@npm:1.7.5" +"web3-core-subscriptions@npm:1.8.0": + version: 1.8.0 + resolution: "web3-core-subscriptions@npm:1.8.0" dependencies: eventemitter3: 4.0.4 - web3-core-helpers: 1.7.5 - checksum: f7bc85a56f5ea4ccdea8a0b91eed57abeee2646ac16e7c14638280af5296de914361e20e0952f3f80c2942a122aaca6ef5556c02b1c7bbf6282eb9f3e92b3d99 + web3-core-helpers: 1.8.0 + checksum: 934d3b823b7ca7859509f806c81d236bd0e93224e91b9928538a669e6a42e95aa0d3117f36f54f2d4c5e5f429748eb011f9e99022edf363a48d1c5c1e40da212 languageName: node linkType: hard @@ -15821,18 +19608,18 @@ __metadata: languageName: node linkType: hard -"web3-core@npm:1.7.5": - version: 1.7.5 - resolution: "web3-core@npm:1.7.5" +"web3-core@npm:1.8.0": + version: 1.8.0 + resolution: "web3-core@npm:1.8.0" dependencies: "@types/bn.js": ^5.1.0 "@types/node": ^12.12.6 bignumber.js: ^9.0.0 - web3-core-helpers: 1.7.5 - web3-core-method: 1.7.5 - web3-core-requestmanager: 1.7.5 - web3-utils: 1.7.5 - checksum: 11acf3373cf73456493aaa56c0fd7cd6ee57faa20b15e644f1cb84d3cb0e3b25c5c8920c14d3d848c0eb26c3dbd4397b519f981dd675dee2014a17ccb71063ae + web3-core-helpers: 1.8.0 + web3-core-method: 1.8.0 + web3-core-requestmanager: 1.8.0 + web3-utils: 1.8.0 + checksum: a524cc2b23af54650166af07d30a242ec740fe8274bec72e8f2b1757deaf733de295eb6c71594e2332b46a32f69e060414b138a5a4e7598e503188c96a0efa44 languageName: node linkType: hard @@ -15857,13 +19644,13 @@ __metadata: languageName: node linkType: hard -"web3-eth-abi@npm:1.7.5": - version: 1.7.5 - resolution: "web3-eth-abi@npm:1.7.5" +"web3-eth-abi@npm:1.8.0": + version: 1.8.0 + resolution: "web3-eth-abi@npm:1.8.0" dependencies: "@ethersproject/abi": ^5.6.3 - web3-utils: 1.7.5 - checksum: b7c1521f6f4702227f33cf3e679cf3314bf3b88e14458dffb45de30e99eefde1f1b65f140eb650ec591460a04f9b76202f1691667165b0d7f06e31da33c46adc + web3-utils: 1.8.0 + checksum: c9559abc6e928017a561e619863735f5d0c04efe93aee484cff5a376d780be4af40ff7a67723e4478c2e174ad8f35d2a102dd7c442cc976fa374c60c7607445b languageName: node linkType: hard @@ -15905,9 +19692,9 @@ __metadata: languageName: node linkType: hard -"web3-eth-accounts@npm:1.7.5": - version: 1.7.5 - resolution: "web3-eth-accounts@npm:1.7.5" +"web3-eth-accounts@npm:1.8.0": + version: 1.8.0 + resolution: "web3-eth-accounts@npm:1.8.0" dependencies: "@ethereumjs/common": ^2.5.0 "@ethereumjs/tx": ^3.3.2 @@ -15916,11 +19703,11 @@ __metadata: ethereumjs-util: ^7.0.10 scrypt-js: ^3.0.1 uuid: 3.3.2 - web3-core: 1.7.5 - web3-core-helpers: 1.7.5 - web3-core-method: 1.7.5 - web3-utils: 1.7.5 - checksum: f3d05d8f7f1adfbec49723c7e0cbcda9f6563c66a02f7a0cbcbd98630dc5efd10e3ab2744a7be8720dbd446b6f4586e05d05d71593d244a15b954aad5a9a87cf + web3-core: 1.8.0 + web3-core-helpers: 1.8.0 + web3-core-method: 1.8.0 + web3-utils: 1.8.0 + checksum: 20b9c00d583459bda18e1221471f299accc349723814a3c8acd2cc8a012429ecb945f98e7785149c843db78116b1f3f847bc2c18e6728e3181d0c3f846d520af languageName: node linkType: hard @@ -15957,19 +19744,19 @@ __metadata: languageName: node linkType: hard -"web3-eth-contract@npm:1.7.5": - version: 1.7.5 - resolution: "web3-eth-contract@npm:1.7.5" +"web3-eth-contract@npm:1.8.0": + version: 1.8.0 + resolution: "web3-eth-contract@npm:1.8.0" dependencies: "@types/bn.js": ^5.1.0 - web3-core: 1.7.5 - web3-core-helpers: 1.7.5 - web3-core-method: 1.7.5 - web3-core-promievent: 1.7.5 - web3-core-subscriptions: 1.7.5 - web3-eth-abi: 1.7.5 - web3-utils: 1.7.5 - checksum: 59f48f0245b1ad1a96148504066eeb954eebe7a304535a7a80a219e8ab3ed6b87f6a3145bc8df36b166d7cf9992624c0986d4d09bbdf1cc754e4d769cc7e9135 + web3-core: 1.8.0 + web3-core-helpers: 1.8.0 + web3-core-method: 1.8.0 + web3-core-promievent: 1.8.0 + web3-core-subscriptions: 1.8.0 + web3-eth-abi: 1.8.0 + web3-utils: 1.8.0 + checksum: d433984796c2ac5a4a436d5e9cc93b89e3d4669ec332730c628d471fc23981d19be3a8cea1cfe8634f17469da7e33fa6302cb3d886c2a7d0322bc2e03d8d6a59 languageName: node linkType: hard @@ -16006,19 +19793,19 @@ __metadata: languageName: node linkType: hard -"web3-eth-ens@npm:1.7.5": - version: 1.7.5 - resolution: "web3-eth-ens@npm:1.7.5" +"web3-eth-ens@npm:1.8.0": + version: 1.8.0 + resolution: "web3-eth-ens@npm:1.8.0" dependencies: content-hash: ^2.5.2 eth-ens-namehash: 2.0.8 - web3-core: 1.7.5 - web3-core-helpers: 1.7.5 - web3-core-promievent: 1.7.5 - web3-eth-abi: 1.7.5 - web3-eth-contract: 1.7.5 - web3-utils: 1.7.5 - checksum: b425955cc65fa023d3c7665d774dde89e642542fb6e21e1a05e82c83193cb97b7fdd55a209eab1f67352dc1457956865c22ead6d548fb5be9bca632e4634edfc + web3-core: 1.8.0 + web3-core-helpers: 1.8.0 + web3-core-promievent: 1.8.0 + web3-eth-abi: 1.8.0 + web3-eth-contract: 1.8.0 + web3-utils: 1.8.0 + checksum: 8040d0af63d6c0f65bf75a11c7cfa3edd64361ec346623868773d333c7df43ad0089839a46cebd69058532fffc1fc5c7d17d9bbdb18c53b1fce597b8e50b1f6c languageName: node linkType: hard @@ -16042,13 +19829,13 @@ __metadata: languageName: node linkType: hard -"web3-eth-iban@npm:1.7.5": - version: 1.7.5 - resolution: "web3-eth-iban@npm:1.7.5" +"web3-eth-iban@npm:1.8.0": + version: 1.8.0 + resolution: "web3-eth-iban@npm:1.8.0" dependencies: bn.js: ^5.2.1 - web3-utils: 1.7.5 - checksum: 342605eb0c597ffbcc1b41e61723f4893634df795bd0611d0db56ded734b9a87711bf43d2e98b2abe95d144ccfb9325f0423c757ab6b54a34ab0e129da7096f0 + web3-utils: 1.8.0 + checksum: 3877b18da7c4a965a8cf180fdff95bc3de9a94f671e336403cb11c45b646257fb4c26b3f1e18a51a37f5865190c74f769354a5719517324997bc6a43e2ac2834 languageName: node linkType: hard @@ -16080,17 +19867,17 @@ __metadata: languageName: node linkType: hard -"web3-eth-personal@npm:1.7.5": - version: 1.7.5 - resolution: "web3-eth-personal@npm:1.7.5" +"web3-eth-personal@npm:1.8.0": + version: 1.8.0 + resolution: "web3-eth-personal@npm:1.8.0" dependencies: "@types/node": ^12.12.6 - web3-core: 1.7.5 - web3-core-helpers: 1.7.5 - web3-core-method: 1.7.5 - web3-net: 1.7.5 - web3-utils: 1.7.5 - checksum: f79a5dd490517ae8489196812a5fe2c59e88966579fed441771cf06ca60c043204cffc781cd69b093cdb19084cead86942b4a4efb4bc7038482be5771e90ac73 + web3-core: 1.8.0 + web3-core-helpers: 1.8.0 + web3-core-method: 1.8.0 + web3-net: 1.8.0 + web3-utils: 1.8.0 + checksum: a333ae7602ee82410a6a6d0bec26548b7ba484a563b245350755977b8ab592e6e71707a5a9c678c0cd8a7e8541894c5d6f1a3c59f445c1eaf72aad390d8610fb languageName: node linkType: hard @@ -16135,23 +19922,23 @@ __metadata: languageName: node linkType: hard -"web3-eth@npm:1.7.5": - version: 1.7.5 - resolution: "web3-eth@npm:1.7.5" +"web3-eth@npm:1.8.0": + version: 1.8.0 + resolution: "web3-eth@npm:1.8.0" dependencies: - web3-core: 1.7.5 - web3-core-helpers: 1.7.5 - web3-core-method: 1.7.5 - web3-core-subscriptions: 1.7.5 - web3-eth-abi: 1.7.5 - web3-eth-accounts: 1.7.5 - web3-eth-contract: 1.7.5 - web3-eth-ens: 1.7.5 - web3-eth-iban: 1.7.5 - web3-eth-personal: 1.7.5 - web3-net: 1.7.5 - web3-utils: 1.7.5 - checksum: 6dcf4e2a6c5b81b74871a524570d2d833a2431e9d871841dda00d1b328f2d4c57e561aa48878e631a9a106fc4c7c231569542e251f4ce89367a891288c186636 + web3-core: 1.8.0 + web3-core-helpers: 1.8.0 + web3-core-method: 1.8.0 + web3-core-subscriptions: 1.8.0 + web3-eth-abi: 1.8.0 + web3-eth-accounts: 1.8.0 + web3-eth-contract: 1.8.0 + web3-eth-ens: 1.8.0 + web3-eth-iban: 1.8.0 + web3-eth-personal: 1.8.0 + web3-net: 1.8.0 + web3-utils: 1.8.0 + checksum: 6c029cdb8a274c6e7f8b8b65684133d4facfd77060a016ed43f4e4013b68d020d73e9737c6afa068f9321c4091fc0e1677d32171710ca03019eca82b050ce59b languageName: node linkType: hard @@ -16177,14 +19964,14 @@ __metadata: languageName: node linkType: hard -"web3-net@npm:1.7.5": - version: 1.7.5 - resolution: "web3-net@npm:1.7.5" +"web3-net@npm:1.8.0": + version: 1.8.0 + resolution: "web3-net@npm:1.8.0" dependencies: - web3-core: 1.7.5 - web3-core-method: 1.7.5 - web3-utils: 1.7.5 - checksum: e9beae43724a4c33641e6bd6cf8e29d72905dd3cd2958c02a238a596605e4cf39816c66c72fa159dfa4f3c2e034f4f1ff22671f6abc639ee08a9f584a1e962c2 + web3-core: 1.8.0 + web3-core-method: 1.8.0 + web3-utils: 1.8.0 + checksum: 25d030ebccc77c894c1f95d5a787150d9542d2d7f6e617a65ad9c6724a2653f751ea4ca02f18b3813dfbe4d98638f2748a431d2a0ecf97bc942bd377077f228c languageName: node linkType: hard @@ -16236,15 +20023,15 @@ __metadata: languageName: node linkType: hard -"web3-providers-http@npm:1.7.5": - version: 1.7.5 - resolution: "web3-providers-http@npm:1.7.5" +"web3-providers-http@npm:1.8.0": + version: 1.8.0 + resolution: "web3-providers-http@npm:1.8.0" dependencies: abortcontroller-polyfill: ^1.7.3 cross-fetch: ^3.1.4 es6-promise: ^4.2.8 - web3-core-helpers: 1.7.5 - checksum: 4132197e69855467414caddc9db45f6ea4160f319fbb155a0017ba65f0c90ec813720d1a1abb1c3ce3d36da68a4d19d19f9017f6c624be42775006803991801d + web3-core-helpers: 1.8.0 + checksum: 2af709826ae806c02db1936ccfd25bc28be04403c2e41a02a5e8ebb120ba910cf97dd8c8203c1d08d110a819f7a6548cca813227f4bb567a733d92c4a3ebc930 languageName: node linkType: hard @@ -16269,13 +20056,13 @@ __metadata: languageName: node linkType: hard -"web3-providers-ipc@npm:1.7.5": - version: 1.7.5 - resolution: "web3-providers-ipc@npm:1.7.5" +"web3-providers-ipc@npm:1.8.0": + version: 1.8.0 + resolution: "web3-providers-ipc@npm:1.8.0" dependencies: oboe: 2.1.5 - web3-core-helpers: 1.7.5 - checksum: ef6392a73fce08b0c7fab3a2c762d852d640d05f72f3f8b8a4db0ee0cc9a555d0a3ce6f5acba556c08f95246ee8e2c7d40d7220e5ababa79c70a2c7b5a671ff4 + web3-core-helpers: 1.8.0 + checksum: b65d7f0f37c0d477d46f7e6db7c2ddad0d9bf3ff9a37cdb0b220788779bba551086e11af16ee2488d397d7f54cb16795bddf6b96435ed2527c495391a70b8993 languageName: node linkType: hard @@ -16302,14 +20089,14 @@ __metadata: languageName: node linkType: hard -"web3-providers-ws@npm:1.7.5": - version: 1.7.5 - resolution: "web3-providers-ws@npm:1.7.5" +"web3-providers-ws@npm:1.8.0": + version: 1.8.0 + resolution: "web3-providers-ws@npm:1.8.0" dependencies: eventemitter3: 4.0.4 - web3-core-helpers: 1.7.5 + web3-core-helpers: 1.8.0 websocket: ^1.0.32 - checksum: 92d1e98776e4e773dad6818e7e53c851251d4f74b58ac362d7d884cf67bb778df7065ae329a32284effa04eb4109fa34c1c5cb670d64a806130a1960e121773a + checksum: 61124ae1c6e68713553083a2d652169d399e368c6a9f49b4966cf5c59bcaee2a47e55d993726b3702a605ed48d8b18d79398712cd5b67ac237ec46715033e7fc languageName: node linkType: hard @@ -16337,15 +20124,15 @@ __metadata: languageName: node linkType: hard -"web3-shh@npm:1.7.5": - version: 1.7.5 - resolution: "web3-shh@npm:1.7.5" +"web3-shh@npm:1.8.0": + version: 1.8.0 + resolution: "web3-shh@npm:1.8.0" dependencies: - web3-core: 1.7.5 - web3-core-method: 1.7.5 - web3-core-subscriptions: 1.7.5 - web3-net: 1.7.5 - checksum: 672f5fbd08dfb783d8cfabd9c4eacf81dfe7b4910c18bd17ad8a7971a6b384bd48aa55bd787776e74a04154994f73fe924eb488f5c1199b35ae468db561c37c8 + web3-core: 1.8.0 + web3-core-method: 1.8.0 + web3-core-subscriptions: 1.8.0 + web3-net: 1.8.0 + checksum: d205050687ff431c6d73a15ae9485c43184a73d2355089070db748e66bd10efb44f2d8d0ee9daa6b29727a0a7b4ff3a3bca013b1f4bbc5fdb1376491d0ab23cc languageName: node linkType: hard @@ -16380,9 +20167,9 @@ __metadata: languageName: node linkType: hard -"web3-utils@npm:1.7.5, web3-utils@npm:^1.0.0-beta.31, web3-utils@npm:^1.3.0, web3-utils@npm:^1.6.0": - version: 1.7.5 - resolution: "web3-utils@npm:1.7.5" +"web3-utils@npm:1.8.0, web3-utils@npm:^1.0.0-beta.31, web3-utils@npm:^1.3.0, web3-utils@npm:^1.6.0": + version: 1.8.0 + resolution: "web3-utils@npm:1.8.0" dependencies: bn.js: ^5.2.1 ethereum-bloom-filters: ^1.0.6 @@ -16391,7 +20178,7 @@ __metadata: number-to-bn: 1.7.0 randombytes: ^2.1.0 utf8: 3.0.0 - checksum: 7eaffb2e59922c7c0c7c3c3e20f700036c89274495c6f664bb3db67cc37d543138596dd86dcc24f3c430ed27f2c6a12b682792a2d922b020c102de6f7873bacb + checksum: 9ac6b8be14fd1feb8f6744d97f94a043716f360035f07de5a6ab414b25838922ac06e09141af39f66fbf3e76de5f1c3e07807929adf754a28ac2159e32dacedf languageName: node linkType: hard @@ -16426,17 +20213,17 @@ __metadata: linkType: hard "web3@npm:^1.6.0": - version: 1.7.5 - resolution: "web3@npm:1.7.5" + version: 1.8.0 + resolution: "web3@npm:1.8.0" dependencies: - web3-bzz: 1.7.5 - web3-core: 1.7.5 - web3-eth: 1.7.5 - web3-eth-personal: 1.7.5 - web3-net: 1.7.5 - web3-shh: 1.7.5 - web3-utils: 1.7.5 - checksum: 823c015a5820480ca9216038199f2df40e21a9ccb66be4e18a19aada0c9dd21b45b270042823a16e7e9a65e6b63f4fd3a0f2acb930a2ec0fe6d80a3791e6c63a + web3-bzz: 1.8.0 + web3-core: 1.8.0 + web3-eth: 1.8.0 + web3-eth-personal: 1.8.0 + web3-net: 1.8.0 + web3-shh: 1.8.0 + web3-utils: 1.8.0 + checksum: 33921cbd0c581442078472325a3018aa6d1553760d803811c2cea24176706c748e07d227ab211aa5c719288f181e5cebddcb502a38d8a286a20477af1ab59f39 languageName: node linkType: hard @@ -16447,6 +20234,20 @@ __metadata: languageName: node linkType: hard +"webidl-conversions@npm:^5.0.0": + version: 5.0.0 + resolution: "webidl-conversions@npm:5.0.0" + checksum: ccf1ec2ca7c0b5671e5440ace4a66806ae09c49016ab821481bec0c05b1b82695082dc0a27d1fe9d804d475a408ba0c691e6803fd21be608e710955d4589cd69 + languageName: node + linkType: hard + +"webidl-conversions@npm:^6.1.0": + version: 6.1.0 + resolution: "webidl-conversions@npm:6.1.0" + checksum: 1f526507aa491f972a0c1409d07f8444e1d28778dfa269a9971f2e157182f3d496dc33296e4ed45b157fdb3bf535bb90c90bf10c50dcf1dd6caacb2a34cc84fb + languageName: node + linkType: hard + "websocket@npm:1.0.32": version: 1.0.32 resolution: "websocket@npm:1.0.32" @@ -16475,6 +20276,15 @@ __metadata: languageName: node linkType: hard +"whatwg-encoding@npm:^1.0.5": + version: 1.0.5 + resolution: "whatwg-encoding@npm:1.0.5" + dependencies: + iconv-lite: 0.4.24 + checksum: 5be4efe111dce29ddee3448d3915477fcc3b28f991d9cf1300b4e50d6d189010d47bca2f51140a844cf9b726e8f066f4aee72a04d687bfe4f2ee2767b2f5b1e6 + languageName: node + linkType: hard + "whatwg-fetch@npm:^2.0.4": version: 2.0.4 resolution: "whatwg-fetch@npm:2.0.4" @@ -16482,6 +20292,13 @@ __metadata: languageName: node linkType: hard +"whatwg-mimetype@npm:^2.3.0": + version: 2.3.0 + resolution: "whatwg-mimetype@npm:2.3.0" + checksum: 23eb885940bcbcca4ff841c40a78e9cbb893ec42743993a42bf7aed16085b048b44b06f3402018931687153550f9a32d259dfa524e4f03577ab898b6965e5383 + languageName: node + linkType: hard + "whatwg-url@npm:^5.0.0": version: 5.0.0 resolution: "whatwg-url@npm:5.0.0" @@ -16492,6 +20309,17 @@ __metadata: languageName: node linkType: hard +"whatwg-url@npm:^8.0.0, whatwg-url@npm:^8.5.0": + version: 8.7.0 + resolution: "whatwg-url@npm:8.7.0" + dependencies: + lodash: ^4.7.0 + tr46: ^2.1.0 + webidl-conversions: ^6.1.0 + checksum: a87abcc6cefcece5311eb642858c8fdb234e51ec74196bfacf8def2edae1bfbffdf6acb251646ed6301f8cee44262642d8769c707256125a91387e33f405dd1e + languageName: node + linkType: hard + "which-boxed-primitive@npm:^1.0.2": version: 1.0.2 resolution: "which-boxed-primitive@npm:1.0.2" @@ -16663,6 +20491,18 @@ __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@npm:1.0.3": version: 1.0.3 resolution: "write@npm:1.0.3" @@ -16767,6 +20607,20 @@ __metadata: languageName: node linkType: hard +"xml-name-validator@npm:^3.0.0": + version: 3.0.0 + resolution: "xml-name-validator@npm:3.0.0" + checksum: b3ac459afed783c285bb98e4960bd1f3ba12754fd4f2320efa0f9181ca28928c53cc75ca660d15d205e81f92304419afe94c531c7cfb3e0649aa6d140d53ecb0 + languageName: node + linkType: hard + +"xmlchars@npm:^2.2.0": + version: 2.2.0 + resolution: "xmlchars@npm:2.2.0" + checksum: 8c70ac94070ccca03f47a81fcce3b271bd1f37a591bf5424e787ae313fcb9c212f5f6786e1fa82076a2c632c0141552babcd85698c437506dfa6ae2d58723062 + languageName: node + linkType: hard + "xmlhttprequest@npm:1.8.0": version: 1.8.0 resolution: "xmlhttprequest@npm:1.8.0" @@ -16921,7 +20775,7 @@ __metadata: languageName: node linkType: hard -"yargs@npm:16.2.0": +"yargs@npm:16.2.0, yargs@npm:^16.2.0": version: 16.2.0 resolution: "yargs@npm:16.2.0" dependencies: