deps circom_runtime
This commit is contained in:
parent
fac9718ef6
commit
a5254903f4
250
build/cli.cjs
250
build/cli.cjs
@ -2,16 +2,24 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
var fs = require('fs');
|
||||||
|
|
||||||
var fs = _interopDefault(require('fs'));
|
|
||||||
var ffjavascript = require('ffjavascript');
|
var ffjavascript = require('ffjavascript');
|
||||||
var path = _interopDefault(require('path'));
|
var path = require('path');
|
||||||
var Blake2b = _interopDefault(require('blake2b-wasm'));
|
var Blake2b = require('blake2b-wasm');
|
||||||
var readline = _interopDefault(require('readline'));
|
var readline = require('readline');
|
||||||
var crypto = _interopDefault(require('crypto'));
|
var crypto = require('crypto');
|
||||||
var circomRuntime = _interopDefault(require('circom_runtime'));
|
var circomRuntime = require('circom_runtime');
|
||||||
var Logger = _interopDefault(require('logplease'));
|
var Logger = require('logplease');
|
||||||
|
|
||||||
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
||||||
|
|
||||||
|
var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
|
||||||
|
var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
|
||||||
|
var Blake2b__default = /*#__PURE__*/_interopDefaultLegacy(Blake2b);
|
||||||
|
var readline__default = /*#__PURE__*/_interopDefaultLegacy(readline);
|
||||||
|
var crypto__default = /*#__PURE__*/_interopDefaultLegacy(crypto);
|
||||||
|
var circomRuntime__default = /*#__PURE__*/_interopDefaultLegacy(circomRuntime);
|
||||||
|
var Logger__default = /*#__PURE__*/_interopDefaultLegacy(Logger);
|
||||||
|
|
||||||
const SUBARRAY_SIZE = 0x40000;
|
const SUBARRAY_SIZE = 0x40000;
|
||||||
|
|
||||||
@ -96,7 +104,7 @@ async function open(fileName, openFlags, cacheSize, pageSize) {
|
|||||||
cacheSize = cacheSize || 4096*64;
|
cacheSize = cacheSize || 4096*64;
|
||||||
if (["w+", "wx+", "r", "ax+", "a+"].indexOf(openFlags) <0)
|
if (["w+", "wx+", "r", "ax+", "a+"].indexOf(openFlags) <0)
|
||||||
throw new Error("Invalid open option");
|
throw new Error("Invalid open option");
|
||||||
const fd =await fs.promises.open(fileName, openFlags);
|
const fd =await fs__default['default'].promises.open(fileName, openFlags);
|
||||||
|
|
||||||
const stats = await fd.stat();
|
const stats = await fd.stat();
|
||||||
|
|
||||||
@ -445,7 +453,7 @@ class FastFile {
|
|||||||
async discard() {
|
async discard() {
|
||||||
const self = this;
|
const self = this;
|
||||||
await self.close();
|
await self.close();
|
||||||
await fs.promises.unlink(this.fileName);
|
await fs__default['default'].promises.unlink(this.fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
async writeULE32(v, pos) {
|
async writeULE32(v, pos) {
|
||||||
@ -1219,13 +1227,13 @@ async function r1csExportJson(r1csFileName, logger) {
|
|||||||
import pkg from "../package.json";
|
import pkg from "../package.json";
|
||||||
const version = pkg.version;
|
const version = pkg.version;
|
||||||
*/
|
*/
|
||||||
const __dirname$1 = path.dirname(new URL((typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('cli.cjs', document.baseURI).href))).pathname);
|
const __dirname$1 = path__default['default'].dirname(new URL((typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('cli.cjs', document.baseURI).href))).pathname);
|
||||||
|
|
||||||
let pkgS;
|
let pkgS;
|
||||||
try {
|
try {
|
||||||
pkgS = fs.readFileSync(path.join(__dirname$1, "package.json"));
|
pkgS = fs__default['default'].readFileSync(path__default['default'].join(__dirname$1, "package.json"));
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
pkgS = fs.readFileSync(path.join(__dirname$1, "..","package.json"));
|
pkgS = fs__default['default'].readFileSync(path__default['default'].join(__dirname$1, "..","package.json"));
|
||||||
}
|
}
|
||||||
|
|
||||||
const pkg = JSON.parse(pkgS);
|
const pkg = JSON.parse(pkgS);
|
||||||
@ -1490,7 +1498,7 @@ function hashToG2(curve, hash) {
|
|||||||
|
|
||||||
function getG2sp(curve, persinalization, challenge, g1s, g1sx) {
|
function getG2sp(curve, persinalization, challenge, g1s, g1sx) {
|
||||||
|
|
||||||
const h = Blake2b(64);
|
const h = Blake2b__default['default'](64);
|
||||||
const b1 = new Uint8Array([persinalization]);
|
const b1 = new Uint8Array([persinalization]);
|
||||||
h.update(b1);
|
h.update(b1);
|
||||||
h.update(challenge);
|
h.update(challenge);
|
||||||
@ -1579,7 +1587,7 @@ function hashIsEqual(h1, h2) {
|
|||||||
|
|
||||||
function cloneHasher(h) {
|
function cloneHasher(h) {
|
||||||
const ph = h.getPartialHash();
|
const ph = h.getPartialHash();
|
||||||
const res = Blake2b(64);
|
const res = Blake2b__default['default'](64);
|
||||||
res.setPartialHash(ph);
|
res.setPartialHash(ph);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
@ -1599,7 +1607,7 @@ function askEntropy() {
|
|||||||
if (process.browser) {
|
if (process.browser) {
|
||||||
return window.prompt("Enter a random text. (Entropy): ", "");
|
return window.prompt("Enter a random text. (Entropy): ", "");
|
||||||
} else {
|
} else {
|
||||||
const rl = readline.createInterface({
|
const rl = readline__default['default'].createInterface({
|
||||||
input: process.stdin,
|
input: process.stdin,
|
||||||
output: process.stdout
|
output: process.stdout
|
||||||
});
|
});
|
||||||
@ -1615,8 +1623,8 @@ async function getRandomRng(entropy) {
|
|||||||
while (!entropy) {
|
while (!entropy) {
|
||||||
entropy = await askEntropy();
|
entropy = await askEntropy();
|
||||||
}
|
}
|
||||||
const hasher = Blake2b(64);
|
const hasher = Blake2b__default['default'](64);
|
||||||
hasher.update(crypto.randomBytes(64));
|
hasher.update(crypto__default['default'].randomBytes(64));
|
||||||
const enc = new TextEncoder(); // always utf-8
|
const enc = new TextEncoder(); // always utf-8
|
||||||
hasher.update(enc.encode(entropy));
|
hasher.update(enc.encode(entropy));
|
||||||
const hash = Buffer.from(hasher.digest());
|
const hash = Buffer.from(hasher.digest());
|
||||||
@ -1643,7 +1651,7 @@ function rngFromBeaconParams(beaconHash, numIterationsExp) {
|
|||||||
let curHash = beaconHash;
|
let curHash = beaconHash;
|
||||||
for (let i=0; i<nIterationsOuter; i++) {
|
for (let i=0; i<nIterationsOuter; i++) {
|
||||||
for (let j=0; j<nIterationsInner; j++) {
|
for (let j=0; j<nIterationsInner; j++) {
|
||||||
curHash = crypto.createHash("sha256").update(curHash).digest();
|
curHash = crypto__default['default'].createHash("sha256").update(curHash).digest();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1861,7 +1869,7 @@ async function readContribution(fd, curve) {
|
|||||||
const buffV = new Uint8Array(curve.G1.F.n8*2*6+curve.G2.F.n8*2*3);
|
const buffV = new Uint8Array(curve.G1.F.n8*2*6+curve.G2.F.n8*2*3);
|
||||||
toPtauPubKeyRpr(buffV, 0, curve, c.key, false);
|
toPtauPubKeyRpr(buffV, 0, curve, c.key, false);
|
||||||
|
|
||||||
const responseHasher = Blake2b(64);
|
const responseHasher = Blake2b__default['default'](64);
|
||||||
responseHasher.setPartialHash(c.partialHash);
|
responseHasher.setPartialHash(c.partialHash);
|
||||||
responseHasher.update(buffV);
|
responseHasher.update(buffV);
|
||||||
c.responseHash = responseHasher.digest();
|
c.responseHash = responseHasher.digest();
|
||||||
@ -1998,14 +2006,14 @@ async function writeContributions(fd, curve, contributions) {
|
|||||||
function calculateFirstChallengeHash(curve, power, logger) {
|
function calculateFirstChallengeHash(curve, power, logger) {
|
||||||
if (logger) logger.debug("Calculating First Challenge Hash");
|
if (logger) logger.debug("Calculating First Challenge Hash");
|
||||||
|
|
||||||
const hasher = new Blake2b(64);
|
const hasher = new Blake2b__default['default'](64);
|
||||||
|
|
||||||
const vG1 = new Uint8Array(curve.G1.F.n8*2);
|
const vG1 = new Uint8Array(curve.G1.F.n8*2);
|
||||||
const vG2 = new Uint8Array(curve.G2.F.n8*2);
|
const vG2 = new Uint8Array(curve.G2.F.n8*2);
|
||||||
curve.G1.toRprUncompressed(vG1, 0, curve.G1.g);
|
curve.G1.toRprUncompressed(vG1, 0, curve.G1.g);
|
||||||
curve.G2.toRprUncompressed(vG2, 0, curve.G2.g);
|
curve.G2.toRprUncompressed(vG2, 0, curve.G2.g);
|
||||||
|
|
||||||
hasher.update(Blake2b(64).digest());
|
hasher.update(Blake2b__default['default'](64).digest());
|
||||||
|
|
||||||
let n;
|
let n;
|
||||||
|
|
||||||
@ -2250,7 +2258,7 @@ contributions(7)
|
|||||||
|
|
||||||
async function newAccumulator(curve, power, fileName, logger) {
|
async function newAccumulator(curve, power, fileName, logger) {
|
||||||
|
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
|
|
||||||
const fd = await createBinFile(fileName, "ptau", 1, 7);
|
const fd = await createBinFile(fileName, "ptau", 1, 7);
|
||||||
|
|
||||||
@ -2315,7 +2323,7 @@ async function newAccumulator(curve, power, fileName, logger) {
|
|||||||
|
|
||||||
const firstChallengeHash = calculateFirstChallengeHash(curve, power, logger);
|
const firstChallengeHash = calculateFirstChallengeHash(curve, power, logger);
|
||||||
|
|
||||||
if (logger) logger.debug(formatHash(Blake2b(64).digest(), "Blank Contribution Hash:"));
|
if (logger) logger.debug(formatHash(Blake2b__default['default'](64).digest(), "Blank Contribution Hash:"));
|
||||||
|
|
||||||
if (logger) logger.info(formatHash(firstChallengeHash, "First Contribution Hash:"));
|
if (logger) logger.info(formatHash(firstChallengeHash, "First Contribution Hash:"));
|
||||||
|
|
||||||
@ -2326,7 +2334,7 @@ async function newAccumulator(curve, power, fileName, logger) {
|
|||||||
// Format of the outpu
|
// Format of the outpu
|
||||||
|
|
||||||
async function exportChallenge(pTauFilename, challengeFilename, logger) {
|
async function exportChallenge(pTauFilename, challengeFilename, logger) {
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
const {fd: fdFrom, sections} = await readBinFile$1(pTauFilename, "ptau", 1);
|
const {fd: fdFrom, sections} = await readBinFile$1(pTauFilename, "ptau", 1);
|
||||||
|
|
||||||
const {curve, power} = await readPTauHeader(fdFrom, sections);
|
const {curve, power} = await readPTauHeader(fdFrom, sections);
|
||||||
@ -2334,7 +2342,7 @@ async function exportChallenge(pTauFilename, challengeFilename, logger) {
|
|||||||
const contributions = await readContributions(fdFrom, curve, sections);
|
const contributions = await readContributions(fdFrom, curve, sections);
|
||||||
let lastResponseHash, curChallengeHash;
|
let lastResponseHash, curChallengeHash;
|
||||||
if (contributions.length == 0) {
|
if (contributions.length == 0) {
|
||||||
lastResponseHash = Blake2b(64).digest();
|
lastResponseHash = Blake2b__default['default'](64).digest();
|
||||||
curChallengeHash = calculateFirstChallengeHash(curve, power);
|
curChallengeHash = calculateFirstChallengeHash(curve, power);
|
||||||
} else {
|
} else {
|
||||||
lastResponseHash = contributions[contributions.length-1].responseHash;
|
lastResponseHash = contributions[contributions.length-1].responseHash;
|
||||||
@ -2348,7 +2356,7 @@ async function exportChallenge(pTauFilename, challengeFilename, logger) {
|
|||||||
|
|
||||||
const fdTo = await createOverride(challengeFilename);
|
const fdTo = await createOverride(challengeFilename);
|
||||||
|
|
||||||
const toHash = Blake2b(64);
|
const toHash = Blake2b__default['default'](64);
|
||||||
await fdTo.write(lastResponseHash);
|
await fdTo.write(lastResponseHash);
|
||||||
toHash.update(lastResponseHash);
|
toHash.update(lastResponseHash);
|
||||||
|
|
||||||
@ -2395,7 +2403,7 @@ async function exportChallenge(pTauFilename, challengeFilename, logger) {
|
|||||||
|
|
||||||
async function importResponse(oldPtauFilename, contributionFilename, newPTauFilename, name, importPoints, logger) {
|
async function importResponse(oldPtauFilename, contributionFilename, newPTauFilename, name, importPoints, logger) {
|
||||||
|
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
|
|
||||||
const noHash = new Uint8Array(64);
|
const noHash = new Uint8Array(64);
|
||||||
for (let i=0; i<64; i++) noHash[i] = 0xFF;
|
for (let i=0; i<64; i++) noHash[i] = 0xFF;
|
||||||
@ -2445,7 +2453,7 @@ async function importResponse(oldPtauFilename, contributionFilename, newPTauFile
|
|||||||
if(!hashIsEqual(contributionPreviousHash,lastChallengeHash))
|
if(!hashIsEqual(contributionPreviousHash,lastChallengeHash))
|
||||||
throw new Error("Wrong contribution. this contribution is not based on the previus hash");
|
throw new Error("Wrong contribution. this contribution is not based on the previus hash");
|
||||||
|
|
||||||
const hasherResponse = new Blake2b(64);
|
const hasherResponse = new Blake2b__default['default'](64);
|
||||||
hasherResponse.update(contributionPreviousHash);
|
hasherResponse.update(contributionPreviousHash);
|
||||||
|
|
||||||
const startSections = [];
|
const startSections = [];
|
||||||
@ -2474,7 +2482,7 @@ async function importResponse(oldPtauFilename, contributionFilename, newPTauFile
|
|||||||
if (logger) logger.info(formatHash(hashResponse, "Contribution Response Hash imported: "));
|
if (logger) logger.info(formatHash(hashResponse, "Contribution Response Hash imported: "));
|
||||||
|
|
||||||
if (importPoints) {
|
if (importPoints) {
|
||||||
const nextChallengeHasher = new Blake2b(64);
|
const nextChallengeHasher = new Blake2b__default['default'](64);
|
||||||
nextChallengeHasher.update(hashResponse);
|
nextChallengeHasher.update(hashResponse);
|
||||||
|
|
||||||
await hashSection(nextChallengeHasher, fdNew, "G1", 2, (2 ** power) * 2 -1, "tauG1", logger);
|
await hashSection(nextChallengeHasher, fdNew, "G1", 2, (2 ** power) * 2 -1, "tauG1", logger);
|
||||||
@ -2705,7 +2713,7 @@ async function verifyContribution(curve, cur, prev, logger) {
|
|||||||
|
|
||||||
async function verify(tauFilename, logger) {
|
async function verify(tauFilename, logger) {
|
||||||
let sr;
|
let sr;
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
|
|
||||||
const {fd, sections} = await readBinFile$1(tauFilename, "ptau", 1);
|
const {fd, sections} = await readBinFile$1(tauFilename, "ptau", 1);
|
||||||
const {curve, power, ceremonyPower} = await readPTauHeader(fd, sections);
|
const {curve, power, ceremonyPower} = await readPTauHeader(fd, sections);
|
||||||
@ -2722,7 +2730,7 @@ async function verify(tauFilename, logger) {
|
|||||||
betaG1: curve.G1.g,
|
betaG1: curve.G1.g,
|
||||||
betaG2: curve.G2.g,
|
betaG2: curve.G2.g,
|
||||||
nextChallenge: calculateFirstChallengeHash(curve, ceremonyPower, logger),
|
nextChallenge: calculateFirstChallengeHash(curve, ceremonyPower, logger),
|
||||||
responseHash: Blake2b(64).digest()
|
responseHash: Blake2b__default['default'](64).digest()
|
||||||
};
|
};
|
||||||
|
|
||||||
if (contrs.length == 0) {
|
if (contrs.length == 0) {
|
||||||
@ -2742,7 +2750,7 @@ async function verify(tauFilename, logger) {
|
|||||||
if (!res) return false;
|
if (!res) return false;
|
||||||
|
|
||||||
|
|
||||||
const nextContributionHasher = Blake2b(64);
|
const nextContributionHasher = Blake2b__default['default'](64);
|
||||||
nextContributionHasher.update(curContr.responseHash);
|
nextContributionHasher.update(curContr.responseHash);
|
||||||
|
|
||||||
// Verify powers and compute nextChallengeHash
|
// Verify powers and compute nextChallengeHash
|
||||||
@ -2876,7 +2884,7 @@ async function verify(tauFilename, logger) {
|
|||||||
const buffV = new Uint8Array(curve.G1.F.n8*2*6+curve.G2.F.n8*2*3);
|
const buffV = new Uint8Array(curve.G1.F.n8*2*6+curve.G2.F.n8*2*3);
|
||||||
toPtauPubKeyRpr(buffV, 0, curve, curContr.key, false);
|
toPtauPubKeyRpr(buffV, 0, curve, curContr.key, false);
|
||||||
|
|
||||||
const responseHasher = Blake2b(64);
|
const responseHasher = Blake2b__default['default'](64);
|
||||||
responseHasher.setPartialHash(curContr.partialHash);
|
responseHasher.setPartialHash(curContr.partialHash);
|
||||||
responseHasher.update(buffV);
|
responseHasher.update(buffV);
|
||||||
const responseHash = responseHasher.digest();
|
const responseHash = responseHasher.digest();
|
||||||
@ -2938,12 +2946,12 @@ async function verify(tauFilename, logger) {
|
|||||||
nextContributionHasher.update(basesU);
|
nextContributionHasher.update(basesU);
|
||||||
|
|
||||||
const scalars = new Uint8Array(4*(n-1));
|
const scalars = new Uint8Array(4*(n-1));
|
||||||
crypto.randomFillSync(scalars);
|
crypto__default['default'].randomFillSync(scalars);
|
||||||
|
|
||||||
|
|
||||||
if (i>0) {
|
if (i>0) {
|
||||||
const firstBase = G.fromRprLEM(bases, 0);
|
const firstBase = G.fromRprLEM(bases, 0);
|
||||||
const r = crypto.randomBytes(4).readUInt32BE(0, true);
|
const r = crypto__default['default'].randomBytes(4).readUInt32BE(0, true);
|
||||||
|
|
||||||
R1 = G.add(R1, G.timesScalar(lastBase, r));
|
R1 = G.add(R1, G.timesScalar(lastBase, r));
|
||||||
R2 = G.add(R2, G.timesScalar(firstBase, r));
|
R2 = G.add(R2, G.timesScalar(firstBase, r));
|
||||||
@ -2984,7 +2992,7 @@ async function verify(tauFilename, logger) {
|
|||||||
|
|
||||||
const seed= new Array(8);
|
const seed= new Array(8);
|
||||||
for (let i=0; i<8; i++) {
|
for (let i=0; i<8; i++) {
|
||||||
seed[i] = crypto.randomBytes(4).readUInt32BE(0, true);
|
seed[i] = crypto__default['default'].randomBytes(4).readUInt32BE(0, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let p=0; p<= power; p ++) {
|
for (let p=0; p<= power; p ++) {
|
||||||
@ -3132,7 +3140,7 @@ async function applyKeyToChallengeSection(fdOld, fdNew, responseHasher, curve, g
|
|||||||
// Format of the output
|
// Format of the output
|
||||||
|
|
||||||
async function challengeContribute(curve, challengeFilename, responesFileName, entropy, logger) {
|
async function challengeContribute(curve, challengeFilename, responesFileName, entropy, logger) {
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
|
|
||||||
const fdFrom = await readExisting$2(challengeFilename);
|
const fdFrom = await readExisting$2(challengeFilename);
|
||||||
|
|
||||||
@ -3155,7 +3163,7 @@ async function challengeContribute(curve, challengeFilename, responesFileName, e
|
|||||||
const fdTo = await createOverride(responesFileName);
|
const fdTo = await createOverride(responesFileName);
|
||||||
|
|
||||||
// Calculate the hash
|
// Calculate the hash
|
||||||
const challengeHasher = Blake2b(64);
|
const challengeHasher = Blake2b__default['default'](64);
|
||||||
for (let i=0; i<fdFrom.totalSize; i+= fdFrom.pageSize) {
|
for (let i=0; i<fdFrom.totalSize; i+= fdFrom.pageSize) {
|
||||||
if (logger) logger.debug(`Hashing challenge ${i}/${fdFrom.totalSize}`);
|
if (logger) logger.debug(`Hashing challenge ${i}/${fdFrom.totalSize}`);
|
||||||
const s = Math.min(fdFrom.totalSize - i, fdFrom.pageSize);
|
const s = Math.min(fdFrom.totalSize - i, fdFrom.pageSize);
|
||||||
@ -3181,7 +3189,7 @@ async function challengeContribute(curve, challengeFilename, responesFileName, e
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const responseHasher = Blake2b(64);
|
const responseHasher = Blake2b__default['default'](64);
|
||||||
|
|
||||||
await fdTo.write(challengeHash);
|
await fdTo.write(challengeHash);
|
||||||
responseHasher.update(challengeHash);
|
responseHasher.update(challengeHash);
|
||||||
@ -3224,7 +3232,7 @@ async function beacon(oldPtauFilename, newPTauFilename, name, beaconHashStr,num
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
|
|
||||||
const {fd: fdOld, sections} = await readBinFile$1(oldPtauFilename, "ptau", 1);
|
const {fd: fdOld, sections} = await readBinFile$1(oldPtauFilename, "ptau", 1);
|
||||||
const {curve, power, ceremonyPower} = await readPTauHeader(fdOld, sections);
|
const {curve, power, ceremonyPower} = await readPTauHeader(fdOld, sections);
|
||||||
@ -3253,7 +3261,7 @@ async function beacon(oldPtauFilename, newPTauFilename, name, beaconHashStr,num
|
|||||||
|
|
||||||
curContribution.key = keyFromBeacon(curve, lastChallengeHash, beaconHash, numIterationsExp);
|
curContribution.key = keyFromBeacon(curve, lastChallengeHash, beaconHash, numIterationsExp);
|
||||||
|
|
||||||
const responseHasher = new Blake2b(64);
|
const responseHasher = new Blake2b__default['default'](64);
|
||||||
responseHasher.update(lastChallengeHash);
|
responseHasher.update(lastChallengeHash);
|
||||||
|
|
||||||
const fdNew = await createBinFile(newPTauFilename, "ptau", 1, 7);
|
const fdNew = await createBinFile(newPTauFilename, "ptau", 1, 7);
|
||||||
@ -3284,7 +3292,7 @@ async function beacon(oldPtauFilename, newPTauFilename, name, beaconHashStr,num
|
|||||||
|
|
||||||
if (logger) logger.info(formatHash(hashResponse, "Contribution Response Hash imported: "));
|
if (logger) logger.info(formatHash(hashResponse, "Contribution Response Hash imported: "));
|
||||||
|
|
||||||
const nextChallengeHasher = new Blake2b(64);
|
const nextChallengeHasher = new Blake2b__default['default'](64);
|
||||||
nextChallengeHasher.update(hashResponse);
|
nextChallengeHasher.update(hashResponse);
|
||||||
|
|
||||||
await hashSection(fdNew, "G1", 2, (2 ** power) * 2 -1, "tauG1", logger);
|
await hashSection(fdNew, "G1", 2, (2 ** power) * 2 -1, "tauG1", logger);
|
||||||
@ -3375,7 +3383,7 @@ async function beacon(oldPtauFilename, newPTauFilename, name, beaconHashStr,num
|
|||||||
// Format of the output
|
// Format of the output
|
||||||
|
|
||||||
async function contribute(oldPtauFilename, newPTauFilename, name, entropy, logger) {
|
async function contribute(oldPtauFilename, newPTauFilename, name, entropy, logger) {
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
|
|
||||||
const {fd: fdOld, sections} = await readBinFile$1(oldPtauFilename, "ptau", 1);
|
const {fd: fdOld, sections} = await readBinFile$1(oldPtauFilename, "ptau", 1);
|
||||||
const {curve, power, ceremonyPower} = await readPTauHeader(fdOld, sections);
|
const {curve, power, ceremonyPower} = await readPTauHeader(fdOld, sections);
|
||||||
@ -3408,7 +3416,7 @@ async function contribute(oldPtauFilename, newPTauFilename, name, entropy, logge
|
|||||||
curContribution.key = createPTauKey(curve, lastChallengeHash, rng);
|
curContribution.key = createPTauKey(curve, lastChallengeHash, rng);
|
||||||
|
|
||||||
|
|
||||||
const responseHasher = new Blake2b(64);
|
const responseHasher = new Blake2b__default['default'](64);
|
||||||
responseHasher.update(lastChallengeHash);
|
responseHasher.update(lastChallengeHash);
|
||||||
|
|
||||||
const fdNew = await createBinFile(newPTauFilename, "ptau", 1, 7);
|
const fdNew = await createBinFile(newPTauFilename, "ptau", 1, 7);
|
||||||
@ -3439,7 +3447,7 @@ async function contribute(oldPtauFilename, newPTauFilename, name, entropy, logge
|
|||||||
|
|
||||||
if (logger) logger.info(formatHash(hashResponse, "Contribution Response Hash imported: "));
|
if (logger) logger.info(formatHash(hashResponse, "Contribution Response Hash imported: "));
|
||||||
|
|
||||||
const nextChallengeHasher = new Blake2b(64);
|
const nextChallengeHasher = new Blake2b__default['default'](64);
|
||||||
nextChallengeHasher.update(hashResponse);
|
nextChallengeHasher.update(hashResponse);
|
||||||
|
|
||||||
await hashSection(fdNew, "G1", 2, (2 ** power) * 2 -1, "tauG1");
|
await hashSection(fdNew, "G1", 2, (2 ** power) * 2 -1, "tauG1");
|
||||||
@ -3968,8 +3976,8 @@ async function newZKey(r1csName, ptauName, zkeyName, logger) {
|
|||||||
const TAU_G2 = 1;
|
const TAU_G2 = 1;
|
||||||
const ALPHATAU_G1 = 2;
|
const ALPHATAU_G1 = 2;
|
||||||
const BETATAU_G1 = 3;
|
const BETATAU_G1 = 3;
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
const csHasher = Blake2b(64);
|
const csHasher = Blake2b__default['default'](64);
|
||||||
|
|
||||||
const {fd: fdPTau, sections: sectionsPTau} = await readBinFile$1(ptauName, "ptau", 1, 1<<22, 1<<24);
|
const {fd: fdPTau, sections: sectionsPTau} = await readBinFile$1(ptauName, "ptau", 1, 1<<22, 1<<24);
|
||||||
const {curve, power} = await readPTauHeader(fdPTau, sectionsPTau);
|
const {curve, power} = await readPTauHeader(fdPTau, sectionsPTau);
|
||||||
@ -5176,7 +5184,7 @@ const sameRatio$2 = sameRatio;
|
|||||||
async function phase2verifyFromInit(initFileName, pTauFileName, zkeyFileName, logger) {
|
async function phase2verifyFromInit(initFileName, pTauFileName, zkeyFileName, logger) {
|
||||||
|
|
||||||
let sr;
|
let sr;
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
|
|
||||||
const {fd, sections} = await readBinFile$1(zkeyFileName, "zkey", 2);
|
const {fd, sections} = await readBinFile$1(zkeyFileName, "zkey", 2);
|
||||||
const zkey = await readHeader(fd, sections, "groth16");
|
const zkey = await readHeader(fd, sections, "groth16");
|
||||||
@ -5187,7 +5195,7 @@ async function phase2verifyFromInit(initFileName, pTauFileName, zkeyFileName, lo
|
|||||||
|
|
||||||
const mpcParams = await readMPCParams(fd, curve, sections);
|
const mpcParams = await readMPCParams(fd, curve, sections);
|
||||||
|
|
||||||
const accumulatedHasher = Blake2b(64);
|
const accumulatedHasher = Blake2b__default['default'](64);
|
||||||
accumulatedHasher.update(mpcParams.csHash);
|
accumulatedHasher.update(mpcParams.csHash);
|
||||||
let curDelta = curve.G1.g;
|
let curDelta = curve.G1.g;
|
||||||
for (let i=0; i<mpcParams.contributions.length; i++) {
|
for (let i=0; i<mpcParams.contributions.length; i++) {
|
||||||
@ -5233,7 +5241,7 @@ async function phase2verifyFromInit(initFileName, pTauFileName, zkeyFileName, lo
|
|||||||
|
|
||||||
hashPubKey(accumulatedHasher, curve, c);
|
hashPubKey(accumulatedHasher, curve, c);
|
||||||
|
|
||||||
const contributionHasher = Blake2b(64);
|
const contributionHasher = Blake2b__default['default'](64);
|
||||||
hashPubKey(contributionHasher, curve, c);
|
hashPubKey(contributionHasher, curve, c);
|
||||||
|
|
||||||
c.contributionHash = contributionHasher.digest();
|
c.contributionHash = contributionHasher.digest();
|
||||||
@ -5390,7 +5398,7 @@ async function phase2verifyFromInit(initFileName, pTauFileName, zkeyFileName, lo
|
|||||||
const bases2 = await fd2.read(n*sG);
|
const bases2 = await fd2.read(n*sG);
|
||||||
|
|
||||||
const scalars = new Uint8Array(4*n);
|
const scalars = new Uint8Array(4*n);
|
||||||
crypto.randomFillSync(scalars);
|
crypto__default['default'].randomFillSync(scalars);
|
||||||
|
|
||||||
|
|
||||||
const r1 = await G.multiExpAffine(bases1, scalars);
|
const r1 = await G.multiExpAffine(bases1, scalars);
|
||||||
@ -5422,7 +5430,7 @@ async function phase2verifyFromInit(initFileName, pTauFileName, zkeyFileName, lo
|
|||||||
|
|
||||||
const seed= new Array(8);
|
const seed= new Array(8);
|
||||||
for (let i=0; i<8; i++) {
|
for (let i=0; i<8; i++) {
|
||||||
seed[i] = crypto.randomBytes(4).readUInt32BE(0, true);
|
seed[i] = crypto__default['default'].randomBytes(4).readUInt32BE(0, true);
|
||||||
}
|
}
|
||||||
const rng = new ffjavascript.ChaCha(seed);
|
const rng = new ffjavascript.ChaCha(seed);
|
||||||
for (let i=0; i<zkey.domainSize-1; i++) { // Note that last one is zero
|
for (let i=0; i<zkey.domainSize-1; i++) { // Note that last one is zero
|
||||||
@ -5568,7 +5576,7 @@ async function phase2verifyFromR1cs(r1csFileName, pTauFileName, zkeyFileName, lo
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function phase2contribute(zkeyNameOld, zkeyNameNew, name, entropy, logger) {
|
async function phase2contribute(zkeyNameOld, zkeyNameNew, name, entropy, logger) {
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
|
|
||||||
const {fd: fdOld, sections: sections} = await readBinFile$1(zkeyNameOld, "zkey", 2);
|
const {fd: fdOld, sections: sections} = await readBinFile$1(zkeyNameOld, "zkey", 2);
|
||||||
const zkey = await readHeader(fdOld, sections, "groth16");
|
const zkey = await readHeader(fdOld, sections, "groth16");
|
||||||
@ -5582,7 +5590,7 @@ async function phase2contribute(zkeyNameOld, zkeyNameNew, name, entropy, logger)
|
|||||||
|
|
||||||
const rng = await getRandomRng(entropy);
|
const rng = await getRandomRng(entropy);
|
||||||
|
|
||||||
const transcriptHasher = Blake2b(64);
|
const transcriptHasher = Blake2b__default['default'](64);
|
||||||
transcriptHasher.update(mpcParams.csHash);
|
transcriptHasher.update(mpcParams.csHash);
|
||||||
for (let i=0; i<mpcParams.contributions.length; i++) {
|
for (let i=0; i<mpcParams.contributions.length; i++) {
|
||||||
hashPubKey(transcriptHasher, curve, mpcParams.contributions[i]);
|
hashPubKey(transcriptHasher, curve, mpcParams.contributions[i]);
|
||||||
@ -5635,7 +5643,7 @@ async function phase2contribute(zkeyNameOld, zkeyNameNew, name, entropy, logger)
|
|||||||
await fdOld.close();
|
await fdOld.close();
|
||||||
await fdNew.close();
|
await fdNew.close();
|
||||||
|
|
||||||
const contributionHasher = Blake2b(64);
|
const contributionHasher = Blake2b__default['default'](64);
|
||||||
hashPubKey(contributionHasher, curve, curContribution);
|
hashPubKey(contributionHasher, curve, curContribution);
|
||||||
|
|
||||||
const contribuionHash = contributionHasher.digest();
|
const contribuionHash = contributionHasher.digest();
|
||||||
@ -5647,7 +5655,7 @@ async function phase2contribute(zkeyNameOld, zkeyNameNew, name, entropy, logger)
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function beacon$1(zkeyNameOld, zkeyNameNew, name, beaconHashStr, numIterationsExp, logger) {
|
async function beacon$1(zkeyNameOld, zkeyNameNew, name, beaconHashStr, numIterationsExp, logger) {
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
|
|
||||||
const beaconHash = hex2ByteArray(beaconHashStr);
|
const beaconHash = hex2ByteArray(beaconHashStr);
|
||||||
if ( (beaconHash.byteLength == 0)
|
if ( (beaconHash.byteLength == 0)
|
||||||
@ -5679,7 +5687,7 @@ async function beacon$1(zkeyNameOld, zkeyNameNew, name, beaconHashStr, numIterat
|
|||||||
|
|
||||||
const rng = await rngFromBeaconParams(beaconHash, numIterationsExp);
|
const rng = await rngFromBeaconParams(beaconHash, numIterationsExp);
|
||||||
|
|
||||||
const transcriptHasher = Blake2b(64);
|
const transcriptHasher = Blake2b__default['default'](64);
|
||||||
transcriptHasher.update(mpcParams.csHash);
|
transcriptHasher.update(mpcParams.csHash);
|
||||||
for (let i=0; i<mpcParams.contributions.length; i++) {
|
for (let i=0; i<mpcParams.contributions.length; i++) {
|
||||||
hashPubKey(transcriptHasher, curve, mpcParams.contributions[i]);
|
hashPubKey(transcriptHasher, curve, mpcParams.contributions[i]);
|
||||||
@ -5735,7 +5743,7 @@ async function beacon$1(zkeyNameOld, zkeyNameNew, name, beaconHashStr, numIterat
|
|||||||
await fdOld.close();
|
await fdOld.close();
|
||||||
await fdNew.close();
|
await fdNew.close();
|
||||||
|
|
||||||
const contributionHasher = Blake2b(64);
|
const contributionHasher = Blake2b__default['default'](64);
|
||||||
hashPubKey(contributionHasher, curve, curContribution);
|
hashPubKey(contributionHasher, curve, curContribution);
|
||||||
|
|
||||||
const contribuionHash = contributionHasher.digest();
|
const contribuionHash = contributionHasher.digest();
|
||||||
@ -5755,7 +5763,7 @@ async function zkeyExportJson(zkeyFileName, verbose) {
|
|||||||
// Format of the output
|
// Format of the output
|
||||||
|
|
||||||
async function bellmanContribute(curve, challengeFilename, responesFileName, entropy, logger) {
|
async function bellmanContribute(curve, challengeFilename, responesFileName, entropy, logger) {
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
|
|
||||||
const rng = await getRandomRng(entropy);
|
const rng = await getRandomRng(entropy);
|
||||||
|
|
||||||
@ -5814,7 +5822,7 @@ async function bellmanContribute(curve, challengeFilename, responesFileName, ent
|
|||||||
//////////
|
//////////
|
||||||
/// Read contributions
|
/// Read contributions
|
||||||
//////////
|
//////////
|
||||||
const transcriptHasher = Blake2b(64);
|
const transcriptHasher = Blake2b__default['default'](64);
|
||||||
|
|
||||||
const mpcParams = {};
|
const mpcParams = {};
|
||||||
// csHash
|
// csHash
|
||||||
@ -5865,7 +5873,7 @@ async function bellmanContribute(curve, challengeFilename, responesFileName, ent
|
|||||||
await fdTo.write(c.transcript);
|
await fdTo.write(c.transcript);
|
||||||
}
|
}
|
||||||
|
|
||||||
const contributionHasher = Blake2b(64);
|
const contributionHasher = Blake2b__default['default'](64);
|
||||||
hashPubKey(contributionHasher, curve, curContribution);
|
hashPubKey(contributionHasher, curve, curContribution);
|
||||||
|
|
||||||
const contributionHash = contributionHasher.digest();
|
const contributionHash = contributionHasher.digest();
|
||||||
@ -6289,7 +6297,7 @@ async function joinABC(curve, zkey, a, b, c, logger) {
|
|||||||
return outBuff;
|
return outBuff;
|
||||||
}
|
}
|
||||||
|
|
||||||
const { WitnessCalculatorBuilder } = circomRuntime;
|
const { WitnessCalculatorBuilder } = circomRuntime__default['default'];
|
||||||
|
|
||||||
async function wtnsCalculate(input, wasmFileName, wtnsFileName, options) {
|
async function wtnsCalculate(input, wasmFileName, wtnsFileName, options) {
|
||||||
|
|
||||||
@ -6388,7 +6396,7 @@ async function groth16Verify(vk_verifier, publicSignals, proof, logger) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const { WitnessCalculatorBuilder: WitnessCalculatorBuilder$1 } = circomRuntime;
|
const { WitnessCalculatorBuilder: WitnessCalculatorBuilder$1 } = circomRuntime__default['default'];
|
||||||
|
|
||||||
async function wtnsDebug(input, wasmFileName, wtnsFileName, symName, options, logger) {
|
async function wtnsDebug(input, wasmFileName, wtnsFileName, symName, options, logger) {
|
||||||
|
|
||||||
@ -6460,10 +6468,10 @@ async function wtnsExportJson(wtnsFileName) {
|
|||||||
along with jaz. If not, see <https://www.gnu.org/licenses/>.
|
along with jaz. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
const {stringifyBigInts: stringifyBigInts$3, unstringifyBigInts: unstringifyBigInts$1} = ffjavascript.utils;
|
const {stringifyBigInts: stringifyBigInts$3, unstringifyBigInts: unstringifyBigInts$1} = ffjavascript.utils;
|
||||||
const logger = Logger.create("snarkJS", {showTimestamp:false});
|
const logger = Logger__default['default'].create("snarkJS", {showTimestamp:false});
|
||||||
Logger.setLogLevel("INFO");
|
Logger__default['default'].setLogLevel("INFO");
|
||||||
|
|
||||||
const __dirname$2 = path.dirname(new URL((typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('cli.cjs', document.baseURI).href))).pathname);
|
const __dirname$2 = path__default['default'].dirname(new URL((typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('cli.cjs', document.baseURI).href))).pathname);
|
||||||
|
|
||||||
const commands = [
|
const commands = [
|
||||||
{
|
{
|
||||||
@ -6744,7 +6752,7 @@ function changeExt(fileName, newExt) {
|
|||||||
async function r1csInfo$1(params, options) {
|
async function r1csInfo$1(params, options) {
|
||||||
const r1csName = params[0] || "circuit.r1cs";
|
const r1csName = params[0] || "circuit.r1cs";
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
await r1csInfo(r1csName, logger);
|
await r1csInfo(r1csName, logger);
|
||||||
|
|
||||||
@ -6757,7 +6765,7 @@ async function r1csPrint$1(params, options) {
|
|||||||
const r1csName = params[0] || "circuit.r1cs";
|
const r1csName = params[0] || "circuit.r1cs";
|
||||||
const symName = params[1] || changeExt(r1csName, "sym");
|
const symName = params[1] || changeExt(r1csName, "sym");
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
const cir = await readR1cs(r1csName, true, true, false);
|
const cir = await readR1cs(r1csName, true, true, false);
|
||||||
|
|
||||||
@ -6774,12 +6782,12 @@ async function r1csExportJSON(params, options) {
|
|||||||
const r1csName = params[0] || "circuit.r1cs";
|
const r1csName = params[0] || "circuit.r1cs";
|
||||||
const jsonName = params[1] || changeExt(r1csName, "json");
|
const jsonName = params[1] || changeExt(r1csName, "json");
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
const r1csObj = await r1csExportJson(r1csName, logger);
|
const r1csObj = await r1csExportJson(r1csName, logger);
|
||||||
|
|
||||||
const S = JSON.stringify(r1csObj, null, 1);
|
const S = JSON.stringify(r1csObj, null, 1);
|
||||||
await fs.promises.writeFile(jsonName, S);
|
await fs__default['default'].promises.writeFile(jsonName, S);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -6790,9 +6798,9 @@ async function wtnsCalculate$1(params, options) {
|
|||||||
const inputName = params[1] || "input.json";
|
const inputName = params[1] || "input.json";
|
||||||
const witnessName = params[2] || "witness.wtns";
|
const witnessName = params[2] || "witness.wtns";
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
const input = unstringifyBigInts$1(JSON.parse(await fs.promises.readFile(inputName, "utf8")));
|
const input = unstringifyBigInts$1(JSON.parse(await fs__default['default'].promises.readFile(inputName, "utf8")));
|
||||||
|
|
||||||
await wtnsCalculate(input, wasmName, witnessName);
|
await wtnsCalculate(input, wasmName, witnessName);
|
||||||
|
|
||||||
@ -6808,9 +6816,9 @@ async function wtnsDebug$1(params, options) {
|
|||||||
const witnessName = params[2] || "witness.wtns";
|
const witnessName = params[2] || "witness.wtns";
|
||||||
const symName = params[3] || changeExt(wasmName, "sym");
|
const symName = params[3] || changeExt(wasmName, "sym");
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
const input = unstringifyBigInts$1(JSON.parse(await fs.promises.readFile(inputName, "utf8")));
|
const input = unstringifyBigInts$1(JSON.parse(await fs__default['default'].promises.readFile(inputName, "utf8")));
|
||||||
|
|
||||||
await wtnsDebug(input, wasmName, witnessName, symName, options, logger);
|
await wtnsDebug(input, wasmName, witnessName, symName, options, logger);
|
||||||
|
|
||||||
@ -6824,11 +6832,11 @@ async function wtnsExportJson$1(params, options) {
|
|||||||
const wtnsName = params[0] || "witness.wtns";
|
const wtnsName = params[0] || "witness.wtns";
|
||||||
const jsonName = params[1] || "witness.json";
|
const jsonName = params[1] || "witness.json";
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
const w = await wtnsExportJson(wtnsName);
|
const w = await wtnsExportJson(wtnsName);
|
||||||
|
|
||||||
await fs.promises.writeFile(jsonName, JSON.stringify(stringifyBigInts$3(w), null, 1));
|
await fs__default['default'].promises.writeFile(jsonName, JSON.stringify(stringifyBigInts$3(w), null, 1));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -6866,12 +6874,12 @@ async function groth16Prove$1(params, options) {
|
|||||||
const proofName = params[2] || "proof.json";
|
const proofName = params[2] || "proof.json";
|
||||||
const publicName = params[3] || "public.json";
|
const publicName = params[3] || "public.json";
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
const {proof, publicSignals} = await groth16Prove(zkeyName, witnessName, logger);
|
const {proof, publicSignals} = await groth16Prove(zkeyName, witnessName, logger);
|
||||||
|
|
||||||
await fs.promises.writeFile(proofName, JSON.stringify(stringifyBigInts$3(proof), null, 1), "utf-8");
|
await fs__default['default'].promises.writeFile(proofName, JSON.stringify(stringifyBigInts$3(proof), null, 1), "utf-8");
|
||||||
await fs.promises.writeFile(publicName, JSON.stringify(stringifyBigInts$3(publicSignals), null, 1), "utf-8");
|
await fs__default['default'].promises.writeFile(publicName, JSON.stringify(stringifyBigInts$3(publicSignals), null, 1), "utf-8");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -6885,14 +6893,14 @@ async function groth16FullProve$1(params, options) {
|
|||||||
const proofName = params[3] || "proof.json";
|
const proofName = params[3] || "proof.json";
|
||||||
const publicName = params[4] || "public.json";
|
const publicName = params[4] || "public.json";
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
const input = unstringifyBigInts$1(JSON.parse(await fs.promises.readFile(inputName, "utf8")));
|
const input = unstringifyBigInts$1(JSON.parse(await fs__default['default'].promises.readFile(inputName, "utf8")));
|
||||||
|
|
||||||
const {proof, publicSignals} = await groth16FullProve(input, wasmName, zkeyName, logger);
|
const {proof, publicSignals} = await groth16FullProve(input, wasmName, zkeyName, logger);
|
||||||
|
|
||||||
await fs.promises.writeFile(proofName, JSON.stringify(stringifyBigInts$3(proof), null, 1), "utf-8");
|
await fs__default['default'].promises.writeFile(proofName, JSON.stringify(stringifyBigInts$3(proof), null, 1), "utf-8");
|
||||||
await fs.promises.writeFile(publicName, JSON.stringify(stringifyBigInts$3(publicSignals), null, 1), "utf-8");
|
await fs__default['default'].promises.writeFile(publicName, JSON.stringify(stringifyBigInts$3(publicSignals), null, 1), "utf-8");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -6904,11 +6912,11 @@ async function groth16Verify$1(params, options) {
|
|||||||
const publicName = params[1] || "public.json";
|
const publicName = params[1] || "public.json";
|
||||||
const proofName = params[2] || "proof.json";
|
const proofName = params[2] || "proof.json";
|
||||||
|
|
||||||
const verificationKey = unstringifyBigInts$1(JSON.parse(fs.readFileSync(verificationKeyName, "utf8")));
|
const verificationKey = unstringifyBigInts$1(JSON.parse(fs__default['default'].readFileSync(verificationKeyName, "utf8")));
|
||||||
const pub = unstringifyBigInts$1(JSON.parse(fs.readFileSync(publicName, "utf8")));
|
const pub = unstringifyBigInts$1(JSON.parse(fs__default['default'].readFileSync(publicName, "utf8")));
|
||||||
const proof = unstringifyBigInts$1(JSON.parse(fs.readFileSync(proofName, "utf8")));
|
const proof = unstringifyBigInts$1(JSON.parse(fs__default['default'].readFileSync(proofName, "utf8")));
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
const isValid = await groth16Verify(verificationKey, pub, proof, logger);
|
const isValid = await groth16Verify(verificationKey, pub, proof, logger);
|
||||||
|
|
||||||
@ -6924,12 +6932,12 @@ async function zkeyExportVKey(params, options) {
|
|||||||
const zkeyName = params[0] || "circuit_final.zkey";
|
const zkeyName = params[0] || "circuit_final.zkey";
|
||||||
const verificationKeyName = params[1] || "verification_key.json";
|
const verificationKeyName = params[1] || "verification_key.json";
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
const vKey = await zkeyExportVerificationKey(zkeyName);
|
const vKey = await zkeyExportVerificationKey(zkeyName);
|
||||||
|
|
||||||
const S = JSON.stringify(ffjavascript.utils.stringifyBigInts(vKey), null, 1);
|
const S = JSON.stringify(ffjavascript.utils.stringifyBigInts(vKey), null, 1);
|
||||||
await fs.promises.writeFile(verificationKeyName, S);
|
await fs__default['default'].promises.writeFile(verificationKeyName, S);
|
||||||
}
|
}
|
||||||
|
|
||||||
// zkey export json [circuit_final.zkey] [circuit.zkey.json]",
|
// zkey export json [circuit_final.zkey] [circuit.zkey.json]",
|
||||||
@ -6937,12 +6945,12 @@ async function zkeyExportJson$1(params, options) {
|
|||||||
const zkeyName = params[0] || "circuit_final.zkey";
|
const zkeyName = params[0] || "circuit_final.zkey";
|
||||||
const zkeyJsonName = params[1] || "circuit_final.zkey.json";
|
const zkeyJsonName = params[1] || "circuit_final.zkey.json";
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
const zKey = await zkeyExportJson(zkeyName);
|
const zKey = await zkeyExportJson(zkeyName);
|
||||||
|
|
||||||
const S = JSON.stringify(ffjavascript.utils.stringifyBigInts(zKey), null, 1);
|
const S = JSON.stringify(ffjavascript.utils.stringifyBigInts(zKey), null, 1);
|
||||||
await fs.promises.writeFile(zkeyJsonName, S);
|
await fs__default['default'].promises.writeFile(zkeyJsonName, S);
|
||||||
}
|
}
|
||||||
|
|
||||||
// solidity genverifier [circuit_final.zkey] [verifier.sol]
|
// solidity genverifier [circuit_final.zkey] [verifier.sol]
|
||||||
@ -6962,19 +6970,19 @@ async function zkeyExportSolidityVerifier(params, options) {
|
|||||||
verifierName = params[1];
|
verifierName = params[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
let templateName;
|
let templateName;
|
||||||
try {
|
try {
|
||||||
templateName = path.join( __dirname$2, "templates", "verifier_groth16.sol");
|
templateName = path__default['default'].join( __dirname$2, "templates", "verifier_groth16.sol");
|
||||||
await fs.promises.stat(templateName);
|
await fs__default['default'].promises.stat(templateName);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
templateName = path.join( __dirname$2, "..", "templates", "verifier_groth16.sol");
|
templateName = path__default['default'].join( __dirname$2, "..", "templates", "verifier_groth16.sol");
|
||||||
}
|
}
|
||||||
|
|
||||||
const verifierCode = await exportSolidityVerifier(zkeyName, templateName);
|
const verifierCode = await exportSolidityVerifier(zkeyName, templateName);
|
||||||
|
|
||||||
fs.writeFileSync(verifierName, verifierCode, "utf-8");
|
fs__default['default'].writeFileSync(verifierName, verifierCode, "utf-8");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -6997,10 +7005,10 @@ async function zkeyExportSolidityCalldata(params, options) {
|
|||||||
proofName = params[1];
|
proofName = params[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
const pub = unstringifyBigInts$1(JSON.parse(fs.readFileSync(publicName, "utf8")));
|
const pub = unstringifyBigInts$1(JSON.parse(fs__default['default'].readFileSync(publicName, "utf8")));
|
||||||
const proof = unstringifyBigInts$1(JSON.parse(fs.readFileSync(proofName, "utf8")));
|
const proof = unstringifyBigInts$1(JSON.parse(fs__default['default'].readFileSync(proofName, "utf8")));
|
||||||
|
|
||||||
let inputs = "";
|
let inputs = "";
|
||||||
for (let i=0; i<pub.length; i++) {
|
for (let i=0; i<pub.length; i++) {
|
||||||
@ -7054,7 +7062,7 @@ async function powersOfTauNew(params, options) {
|
|||||||
|
|
||||||
const curve = await getCurveFromName(curveName);
|
const curve = await getCurveFromName(curveName);
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
return await newAccumulator(curve, power, ptauName, logger);
|
return await newAccumulator(curve, power, ptauName, logger);
|
||||||
}
|
}
|
||||||
@ -7071,7 +7079,7 @@ async function powersOfTauExportChallenge(params, options) {
|
|||||||
challengeName = params[1];
|
challengeName = params[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
return await exportChallenge(ptauName, challengeName, logger);
|
return await exportChallenge(ptauName, challengeName, logger);
|
||||||
}
|
}
|
||||||
@ -7091,7 +7099,7 @@ async function powersOfTauChallengeContribute(params, options) {
|
|||||||
responseName = params[2];
|
responseName = params[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
return await challengeContribute(curve, challengeName, responseName, options.entropy, logger);
|
return await challengeContribute(curve, challengeName, responseName, options.entropy, logger);
|
||||||
}
|
}
|
||||||
@ -7111,7 +7119,7 @@ async function powersOfTauImport(params, options) {
|
|||||||
if (options.nopoints) importPoints = false;
|
if (options.nopoints) importPoints = false;
|
||||||
if (options.nocheck) doCheck = false;
|
if (options.nocheck) doCheck = false;
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
const res = await importResponse(oldPtauName, response, newPtauName, options.name, importPoints, logger);
|
const res = await importResponse(oldPtauName, response, newPtauName, options.name, importPoints, logger);
|
||||||
|
|
||||||
@ -7126,7 +7134,7 @@ async function powersOfTauVerify(params, options) {
|
|||||||
|
|
||||||
ptauName = params[0];
|
ptauName = params[0];
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
const res = await verify(ptauName, logger);
|
const res = await verify(ptauName, logger);
|
||||||
if (res === true) {
|
if (res === true) {
|
||||||
@ -7147,7 +7155,7 @@ async function powersOfTauBeacon(params, options) {
|
|||||||
beaconHashStr = params[2];
|
beaconHashStr = params[2];
|
||||||
numIterationsExp = params[3];
|
numIterationsExp = params[3];
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
return await beacon(oldPtauName, newPtauName, options.name ,beaconHashStr, numIterationsExp, logger);
|
return await beacon(oldPtauName, newPtauName, options.name ,beaconHashStr, numIterationsExp, logger);
|
||||||
}
|
}
|
||||||
@ -7159,7 +7167,7 @@ async function powersOfTauContribute(params, options) {
|
|||||||
oldPtauName = params[0];
|
oldPtauName = params[0];
|
||||||
newPtauName = params[1];
|
newPtauName = params[1];
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
return await contribute(oldPtauName, newPtauName, options.name , options.entropy, logger);
|
return await contribute(oldPtauName, newPtauName, options.name , options.entropy, logger);
|
||||||
}
|
}
|
||||||
@ -7171,7 +7179,7 @@ async function powersOfTauPreparePhase2(params, options) {
|
|||||||
oldPtauName = params[0];
|
oldPtauName = params[0];
|
||||||
newPtauName = params[1];
|
newPtauName = params[1];
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
return await preparePhase2(oldPtauName, newPtauName, logger);
|
return await preparePhase2(oldPtauName, newPtauName, logger);
|
||||||
}
|
}
|
||||||
@ -7183,7 +7191,7 @@ async function powersOfTauConvert(params, options) {
|
|||||||
oldPtauName = params[0];
|
oldPtauName = params[0];
|
||||||
newPtauName = params[1];
|
newPtauName = params[1];
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
return await convert(oldPtauName, newPtauName, logger);
|
return await convert(oldPtauName, newPtauName, logger);
|
||||||
}
|
}
|
||||||
@ -7199,7 +7207,7 @@ async function powersOfTauTruncate(params, options) {
|
|||||||
template = template.slice(0, template.length-1);
|
template = template.slice(0, template.length-1);
|
||||||
template = template+"_";
|
template = template+"_";
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
return await truncate(ptauName, template, logger);
|
return await truncate(ptauName, template, logger);
|
||||||
}
|
}
|
||||||
@ -7212,12 +7220,12 @@ async function powersOfTauExportJson(params, options) {
|
|||||||
ptauName = params[0];
|
ptauName = params[0];
|
||||||
jsonName = params[1];
|
jsonName = params[1];
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
const pTau = await exportJson(ptauName, logger);
|
const pTau = await exportJson(ptauName, logger);
|
||||||
|
|
||||||
const S = JSON.stringify(stringifyBigInts$3(pTau), null, 1);
|
const S = JSON.stringify(stringifyBigInts$3(pTau), null, 1);
|
||||||
await fs.promises.writeFile(jsonName, S);
|
await fs__default['default'].promises.writeFile(jsonName, S);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -7246,7 +7254,7 @@ async function zkeyNew(params, options) {
|
|||||||
zkeyName = params[2];
|
zkeyName = params[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
return newZKey(r1csName, ptauName, zkeyName, logger);
|
return newZKey(r1csName, ptauName, zkeyName, logger);
|
||||||
}
|
}
|
||||||
@ -7264,7 +7272,7 @@ async function zkeyExportBellman(params, options) {
|
|||||||
mpcparamsName = params[1];
|
mpcparamsName = params[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
return phase2exportMPCParams(zkeyName, mpcparamsName, logger);
|
return phase2exportMPCParams(zkeyName, mpcparamsName, logger);
|
||||||
|
|
||||||
@ -7281,7 +7289,7 @@ async function zkeyImportBellman(params, options) {
|
|||||||
mpcParamsName = params[1];
|
mpcParamsName = params[1];
|
||||||
zkeyNameNew = params[2];
|
zkeyNameNew = params[2];
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
return phase2importMPCParams(zkeyNameOld, mpcParamsName, zkeyNameNew, options.name, logger);
|
return phase2importMPCParams(zkeyNameOld, mpcParamsName, zkeyNameNew, options.name, logger);
|
||||||
}
|
}
|
||||||
@ -7310,7 +7318,7 @@ async function zkeyVerifyFromR1cs(params, options) {
|
|||||||
zkeyName = params[2];
|
zkeyName = params[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
const res = await phase2verifyFromR1cs(r1csName, ptauName, zkeyName, logger);
|
const res = await phase2verifyFromR1cs(r1csName, ptauName, zkeyName, logger);
|
||||||
if (res === true) {
|
if (res === true) {
|
||||||
@ -7345,7 +7353,7 @@ async function zkeyVerifyFromInit(params, options) {
|
|||||||
zkeyName = params[2];
|
zkeyName = params[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
const res = await phase2verifyFromInit(initZKeyName, ptauName, zkeyName, logger);
|
const res = await phase2verifyFromInit(initZKeyName, ptauName, zkeyName, logger);
|
||||||
if (res === true) {
|
if (res === true) {
|
||||||
@ -7363,7 +7371,7 @@ async function zkeyContribute(params, options) {
|
|||||||
zkeyOldName = params[0];
|
zkeyOldName = params[0];
|
||||||
zkeyNewName = params[1];
|
zkeyNewName = params[1];
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
return phase2contribute(zkeyOldName, zkeyNewName, options.name, options.entropy, logger);
|
return phase2contribute(zkeyOldName, zkeyNewName, options.name, options.entropy, logger);
|
||||||
}
|
}
|
||||||
@ -7380,7 +7388,7 @@ async function zkeyBeacon(params, options) {
|
|||||||
beaconHashStr = params[2];
|
beaconHashStr = params[2];
|
||||||
numIterationsExp = params[3];
|
numIterationsExp = params[3];
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
return await beacon$1(zkeyOldName, zkeyNewName, options.name ,beaconHashStr, numIterationsExp, logger);
|
return await beacon$1(zkeyOldName, zkeyNewName, options.name ,beaconHashStr, numIterationsExp, logger);
|
||||||
}
|
}
|
||||||
@ -7401,7 +7409,7 @@ async function zkeyBellmanContribute(params, options) {
|
|||||||
responseName = params[2];
|
responseName = params[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options.verbose) Logger.setLogLevel("DEBUG");
|
if (options.verbose) Logger__default['default'].setLogLevel("DEBUG");
|
||||||
|
|
||||||
return bellmanContribute(curve, challengeName, responseName, options.entropy, logger);
|
return bellmanContribute(curve, challengeName, responseName, options.entropy, logger);
|
||||||
}
|
}
|
||||||
|
126
build/main.cjs
126
build/main.cjs
@ -2,20 +2,26 @@
|
|||||||
|
|
||||||
Object.defineProperty(exports, '__esModule', { value: true });
|
Object.defineProperty(exports, '__esModule', { value: true });
|
||||||
|
|
||||||
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
||||||
|
|
||||||
var ffjavascript = require('ffjavascript');
|
var ffjavascript = require('ffjavascript');
|
||||||
var fs = _interopDefault(require('fs'));
|
var fs = require('fs');
|
||||||
var Blake2b = _interopDefault(require('blake2b-wasm'));
|
var Blake2b = require('blake2b-wasm');
|
||||||
var readline = _interopDefault(require('readline'));
|
var readline = require('readline');
|
||||||
var crypto = _interopDefault(require('crypto'));
|
var crypto = require('crypto');
|
||||||
var circomRuntime = _interopDefault(require('circom_runtime'));
|
var circomRuntime = require('circom_runtime');
|
||||||
|
|
||||||
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
||||||
|
|
||||||
|
var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
|
||||||
|
var Blake2b__default = /*#__PURE__*/_interopDefaultLegacy(Blake2b);
|
||||||
|
var readline__default = /*#__PURE__*/_interopDefaultLegacy(readline);
|
||||||
|
var crypto__default = /*#__PURE__*/_interopDefaultLegacy(crypto);
|
||||||
|
var circomRuntime__default = /*#__PURE__*/_interopDefaultLegacy(circomRuntime);
|
||||||
|
|
||||||
async function open(fileName, openFlags, cacheSize, pageSize) {
|
async function open(fileName, openFlags, cacheSize, pageSize) {
|
||||||
cacheSize = cacheSize || 4096*64;
|
cacheSize = cacheSize || 4096*64;
|
||||||
if (["w+", "wx+", "r", "ax+", "a+"].indexOf(openFlags) <0)
|
if (["w+", "wx+", "r", "ax+", "a+"].indexOf(openFlags) <0)
|
||||||
throw new Error("Invalid open option");
|
throw new Error("Invalid open option");
|
||||||
const fd =await fs.promises.open(fileName, openFlags);
|
const fd =await fs__default['default'].promises.open(fileName, openFlags);
|
||||||
|
|
||||||
const stats = await fd.stat();
|
const stats = await fd.stat();
|
||||||
|
|
||||||
@ -364,7 +370,7 @@ class FastFile {
|
|||||||
async discard() {
|
async discard() {
|
||||||
const self = this;
|
const self = this;
|
||||||
await self.close();
|
await self.close();
|
||||||
await fs.promises.unlink(this.fileName);
|
await fs__default['default'].promises.unlink(this.fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
async writeULE32(v, pos) {
|
async writeULE32(v, pos) {
|
||||||
@ -1063,7 +1069,7 @@ function hashIsEqual(h1, h2) {
|
|||||||
|
|
||||||
function cloneHasher(h) {
|
function cloneHasher(h) {
|
||||||
const ph = h.getPartialHash();
|
const ph = h.getPartialHash();
|
||||||
const res = Blake2b(64);
|
const res = Blake2b__default['default'](64);
|
||||||
res.setPartialHash(ph);
|
res.setPartialHash(ph);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
@ -1083,7 +1089,7 @@ function askEntropy() {
|
|||||||
if (process.browser) {
|
if (process.browser) {
|
||||||
return window.prompt("Enter a random text. (Entropy): ", "");
|
return window.prompt("Enter a random text. (Entropy): ", "");
|
||||||
} else {
|
} else {
|
||||||
const rl = readline.createInterface({
|
const rl = readline__default['default'].createInterface({
|
||||||
input: process.stdin,
|
input: process.stdin,
|
||||||
output: process.stdout
|
output: process.stdout
|
||||||
});
|
});
|
||||||
@ -1099,8 +1105,8 @@ async function getRandomRng(entropy) {
|
|||||||
while (!entropy) {
|
while (!entropy) {
|
||||||
entropy = await askEntropy();
|
entropy = await askEntropy();
|
||||||
}
|
}
|
||||||
const hasher = Blake2b(64);
|
const hasher = Blake2b__default['default'](64);
|
||||||
hasher.update(crypto.randomBytes(64));
|
hasher.update(crypto__default['default'].randomBytes(64));
|
||||||
const enc = new TextEncoder(); // always utf-8
|
const enc = new TextEncoder(); // always utf-8
|
||||||
hasher.update(enc.encode(entropy));
|
hasher.update(enc.encode(entropy));
|
||||||
const hash = Buffer.from(hasher.digest());
|
const hash = Buffer.from(hasher.digest());
|
||||||
@ -1127,7 +1133,7 @@ function rngFromBeaconParams(beaconHash, numIterationsExp) {
|
|||||||
let curHash = beaconHash;
|
let curHash = beaconHash;
|
||||||
for (let i=0; i<nIterationsOuter; i++) {
|
for (let i=0; i<nIterationsOuter; i++) {
|
||||||
for (let j=0; j<nIterationsInner; j++) {
|
for (let j=0; j<nIterationsInner; j++) {
|
||||||
curHash = crypto.createHash("sha256").update(curHash).digest();
|
curHash = crypto__default['default'].createHash("sha256").update(curHash).digest();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1769,7 +1775,7 @@ async function joinABC(curve, zkey, a, b, c, logger) {
|
|||||||
return outBuff;
|
return outBuff;
|
||||||
}
|
}
|
||||||
|
|
||||||
const { WitnessCalculatorBuilder } = circomRuntime;
|
const { WitnessCalculatorBuilder } = circomRuntime__default['default'];
|
||||||
|
|
||||||
async function wtnsCalculate(input, wasmFileName, wtnsFileName, options) {
|
async function wtnsCalculate(input, wasmFileName, wtnsFileName, options) {
|
||||||
|
|
||||||
@ -1891,7 +1897,7 @@ function hashToG2(curve, hash) {
|
|||||||
|
|
||||||
function getG2sp(curve, persinalization, challenge, g1s, g1sx) {
|
function getG2sp(curve, persinalization, challenge, g1s, g1sx) {
|
||||||
|
|
||||||
const h = Blake2b(64);
|
const h = Blake2b__default['default'](64);
|
||||||
const b1 = new Uint8Array([persinalization]);
|
const b1 = new Uint8Array([persinalization]);
|
||||||
h.update(b1);
|
h.update(b1);
|
||||||
h.update(challenge);
|
h.update(challenge);
|
||||||
@ -2080,7 +2086,7 @@ async function readContribution$1(fd, curve) {
|
|||||||
const buffV = new Uint8Array(curve.G1.F.n8*2*6+curve.G2.F.n8*2*3);
|
const buffV = new Uint8Array(curve.G1.F.n8*2*6+curve.G2.F.n8*2*3);
|
||||||
toPtauPubKeyRpr(buffV, 0, curve, c.key, false);
|
toPtauPubKeyRpr(buffV, 0, curve, c.key, false);
|
||||||
|
|
||||||
const responseHasher = Blake2b(64);
|
const responseHasher = Blake2b__default['default'](64);
|
||||||
responseHasher.setPartialHash(c.partialHash);
|
responseHasher.setPartialHash(c.partialHash);
|
||||||
responseHasher.update(buffV);
|
responseHasher.update(buffV);
|
||||||
c.responseHash = responseHasher.digest();
|
c.responseHash = responseHasher.digest();
|
||||||
@ -2217,14 +2223,14 @@ async function writeContributions(fd, curve, contributions) {
|
|||||||
function calculateFirstChallengeHash(curve, power, logger) {
|
function calculateFirstChallengeHash(curve, power, logger) {
|
||||||
if (logger) logger.debug("Calculating First Challenge Hash");
|
if (logger) logger.debug("Calculating First Challenge Hash");
|
||||||
|
|
||||||
const hasher = new Blake2b(64);
|
const hasher = new Blake2b__default['default'](64);
|
||||||
|
|
||||||
const vG1 = new Uint8Array(curve.G1.F.n8*2);
|
const vG1 = new Uint8Array(curve.G1.F.n8*2);
|
||||||
const vG2 = new Uint8Array(curve.G2.F.n8*2);
|
const vG2 = new Uint8Array(curve.G2.F.n8*2);
|
||||||
curve.G1.toRprUncompressed(vG1, 0, curve.G1.g);
|
curve.G1.toRprUncompressed(vG1, 0, curve.G1.g);
|
||||||
curve.G2.toRprUncompressed(vG2, 0, curve.G2.g);
|
curve.G2.toRprUncompressed(vG2, 0, curve.G2.g);
|
||||||
|
|
||||||
hasher.update(Blake2b(64).digest());
|
hasher.update(Blake2b__default['default'](64).digest());
|
||||||
|
|
||||||
let n;
|
let n;
|
||||||
|
|
||||||
@ -2320,7 +2326,7 @@ contributions(7)
|
|||||||
|
|
||||||
async function newAccumulator(curve, power, fileName, logger) {
|
async function newAccumulator(curve, power, fileName, logger) {
|
||||||
|
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
|
|
||||||
const fd = await createBinFile(fileName, "ptau", 1, 7);
|
const fd = await createBinFile(fileName, "ptau", 1, 7);
|
||||||
|
|
||||||
@ -2385,7 +2391,7 @@ async function newAccumulator(curve, power, fileName, logger) {
|
|||||||
|
|
||||||
const firstChallengeHash = calculateFirstChallengeHash(curve, power, logger);
|
const firstChallengeHash = calculateFirstChallengeHash(curve, power, logger);
|
||||||
|
|
||||||
if (logger) logger.debug(formatHash(Blake2b(64).digest(), "Blank Contribution Hash:"));
|
if (logger) logger.debug(formatHash(Blake2b__default['default'](64).digest(), "Blank Contribution Hash:"));
|
||||||
|
|
||||||
if (logger) logger.info(formatHash(firstChallengeHash, "First Contribution Hash:"));
|
if (logger) logger.info(formatHash(firstChallengeHash, "First Contribution Hash:"));
|
||||||
|
|
||||||
@ -2396,7 +2402,7 @@ async function newAccumulator(curve, power, fileName, logger) {
|
|||||||
// Format of the outpu
|
// Format of the outpu
|
||||||
|
|
||||||
async function exportChallenge(pTauFilename, challengeFilename, logger) {
|
async function exportChallenge(pTauFilename, challengeFilename, logger) {
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
const {fd: fdFrom, sections} = await readBinFile(pTauFilename, "ptau", 1);
|
const {fd: fdFrom, sections} = await readBinFile(pTauFilename, "ptau", 1);
|
||||||
|
|
||||||
const {curve, power} = await readPTauHeader(fdFrom, sections);
|
const {curve, power} = await readPTauHeader(fdFrom, sections);
|
||||||
@ -2404,7 +2410,7 @@ async function exportChallenge(pTauFilename, challengeFilename, logger) {
|
|||||||
const contributions = await readContributions(fdFrom, curve, sections);
|
const contributions = await readContributions(fdFrom, curve, sections);
|
||||||
let lastResponseHash, curChallengeHash;
|
let lastResponseHash, curChallengeHash;
|
||||||
if (contributions.length == 0) {
|
if (contributions.length == 0) {
|
||||||
lastResponseHash = Blake2b(64).digest();
|
lastResponseHash = Blake2b__default['default'](64).digest();
|
||||||
curChallengeHash = calculateFirstChallengeHash(curve, power);
|
curChallengeHash = calculateFirstChallengeHash(curve, power);
|
||||||
} else {
|
} else {
|
||||||
lastResponseHash = contributions[contributions.length-1].responseHash;
|
lastResponseHash = contributions[contributions.length-1].responseHash;
|
||||||
@ -2418,7 +2424,7 @@ async function exportChallenge(pTauFilename, challengeFilename, logger) {
|
|||||||
|
|
||||||
const fdTo = await createOverride(challengeFilename);
|
const fdTo = await createOverride(challengeFilename);
|
||||||
|
|
||||||
const toHash = Blake2b(64);
|
const toHash = Blake2b__default['default'](64);
|
||||||
await fdTo.write(lastResponseHash);
|
await fdTo.write(lastResponseHash);
|
||||||
toHash.update(lastResponseHash);
|
toHash.update(lastResponseHash);
|
||||||
|
|
||||||
@ -2465,7 +2471,7 @@ async function exportChallenge(pTauFilename, challengeFilename, logger) {
|
|||||||
|
|
||||||
async function importResponse(oldPtauFilename, contributionFilename, newPTauFilename, name, importPoints, logger) {
|
async function importResponse(oldPtauFilename, contributionFilename, newPTauFilename, name, importPoints, logger) {
|
||||||
|
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
|
|
||||||
const noHash = new Uint8Array(64);
|
const noHash = new Uint8Array(64);
|
||||||
for (let i=0; i<64; i++) noHash[i] = 0xFF;
|
for (let i=0; i<64; i++) noHash[i] = 0xFF;
|
||||||
@ -2515,7 +2521,7 @@ async function importResponse(oldPtauFilename, contributionFilename, newPTauFile
|
|||||||
if(!hashIsEqual(contributionPreviousHash,lastChallengeHash))
|
if(!hashIsEqual(contributionPreviousHash,lastChallengeHash))
|
||||||
throw new Error("Wrong contribution. this contribution is not based on the previus hash");
|
throw new Error("Wrong contribution. this contribution is not based on the previus hash");
|
||||||
|
|
||||||
const hasherResponse = new Blake2b(64);
|
const hasherResponse = new Blake2b__default['default'](64);
|
||||||
hasherResponse.update(contributionPreviousHash);
|
hasherResponse.update(contributionPreviousHash);
|
||||||
|
|
||||||
const startSections = [];
|
const startSections = [];
|
||||||
@ -2544,7 +2550,7 @@ async function importResponse(oldPtauFilename, contributionFilename, newPTauFile
|
|||||||
if (logger) logger.info(formatHash(hashResponse, "Contribution Response Hash imported: "));
|
if (logger) logger.info(formatHash(hashResponse, "Contribution Response Hash imported: "));
|
||||||
|
|
||||||
if (importPoints) {
|
if (importPoints) {
|
||||||
const nextChallengeHasher = new Blake2b(64);
|
const nextChallengeHasher = new Blake2b__default['default'](64);
|
||||||
nextChallengeHasher.update(hashResponse);
|
nextChallengeHasher.update(hashResponse);
|
||||||
|
|
||||||
await hashSection(nextChallengeHasher, fdNew, "G1", 2, (2 ** power) * 2 -1, "tauG1", logger);
|
await hashSection(nextChallengeHasher, fdNew, "G1", 2, (2 ** power) * 2 -1, "tauG1", logger);
|
||||||
@ -2775,7 +2781,7 @@ async function verifyContribution(curve, cur, prev, logger) {
|
|||||||
|
|
||||||
async function verify(tauFilename, logger) {
|
async function verify(tauFilename, logger) {
|
||||||
let sr;
|
let sr;
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
|
|
||||||
const {fd, sections} = await readBinFile(tauFilename, "ptau", 1);
|
const {fd, sections} = await readBinFile(tauFilename, "ptau", 1);
|
||||||
const {curve, power, ceremonyPower} = await readPTauHeader(fd, sections);
|
const {curve, power, ceremonyPower} = await readPTauHeader(fd, sections);
|
||||||
@ -2792,7 +2798,7 @@ async function verify(tauFilename, logger) {
|
|||||||
betaG1: curve.G1.g,
|
betaG1: curve.G1.g,
|
||||||
betaG2: curve.G2.g,
|
betaG2: curve.G2.g,
|
||||||
nextChallenge: calculateFirstChallengeHash(curve, ceremonyPower, logger),
|
nextChallenge: calculateFirstChallengeHash(curve, ceremonyPower, logger),
|
||||||
responseHash: Blake2b(64).digest()
|
responseHash: Blake2b__default['default'](64).digest()
|
||||||
};
|
};
|
||||||
|
|
||||||
if (contrs.length == 0) {
|
if (contrs.length == 0) {
|
||||||
@ -2812,7 +2818,7 @@ async function verify(tauFilename, logger) {
|
|||||||
if (!res) return false;
|
if (!res) return false;
|
||||||
|
|
||||||
|
|
||||||
const nextContributionHasher = Blake2b(64);
|
const nextContributionHasher = Blake2b__default['default'](64);
|
||||||
nextContributionHasher.update(curContr.responseHash);
|
nextContributionHasher.update(curContr.responseHash);
|
||||||
|
|
||||||
// Verify powers and compute nextChallengeHash
|
// Verify powers and compute nextChallengeHash
|
||||||
@ -2946,7 +2952,7 @@ async function verify(tauFilename, logger) {
|
|||||||
const buffV = new Uint8Array(curve.G1.F.n8*2*6+curve.G2.F.n8*2*3);
|
const buffV = new Uint8Array(curve.G1.F.n8*2*6+curve.G2.F.n8*2*3);
|
||||||
toPtauPubKeyRpr(buffV, 0, curve, curContr.key, false);
|
toPtauPubKeyRpr(buffV, 0, curve, curContr.key, false);
|
||||||
|
|
||||||
const responseHasher = Blake2b(64);
|
const responseHasher = Blake2b__default['default'](64);
|
||||||
responseHasher.setPartialHash(curContr.partialHash);
|
responseHasher.setPartialHash(curContr.partialHash);
|
||||||
responseHasher.update(buffV);
|
responseHasher.update(buffV);
|
||||||
const responseHash = responseHasher.digest();
|
const responseHash = responseHasher.digest();
|
||||||
@ -3008,12 +3014,12 @@ async function verify(tauFilename, logger) {
|
|||||||
nextContributionHasher.update(basesU);
|
nextContributionHasher.update(basesU);
|
||||||
|
|
||||||
const scalars = new Uint8Array(4*(n-1));
|
const scalars = new Uint8Array(4*(n-1));
|
||||||
crypto.randomFillSync(scalars);
|
crypto__default['default'].randomFillSync(scalars);
|
||||||
|
|
||||||
|
|
||||||
if (i>0) {
|
if (i>0) {
|
||||||
const firstBase = G.fromRprLEM(bases, 0);
|
const firstBase = G.fromRprLEM(bases, 0);
|
||||||
const r = crypto.randomBytes(4).readUInt32BE(0, true);
|
const r = crypto__default['default'].randomBytes(4).readUInt32BE(0, true);
|
||||||
|
|
||||||
R1 = G.add(R1, G.timesScalar(lastBase, r));
|
R1 = G.add(R1, G.timesScalar(lastBase, r));
|
||||||
R2 = G.add(R2, G.timesScalar(firstBase, r));
|
R2 = G.add(R2, G.timesScalar(firstBase, r));
|
||||||
@ -3054,7 +3060,7 @@ async function verify(tauFilename, logger) {
|
|||||||
|
|
||||||
const seed= new Array(8);
|
const seed= new Array(8);
|
||||||
for (let i=0; i<8; i++) {
|
for (let i=0; i<8; i++) {
|
||||||
seed[i] = crypto.randomBytes(4).readUInt32BE(0, true);
|
seed[i] = crypto__default['default'].randomBytes(4).readUInt32BE(0, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let p=0; p<= power; p ++) {
|
for (let p=0; p<= power; p ++) {
|
||||||
@ -3202,7 +3208,7 @@ async function applyKeyToChallengeSection(fdOld, fdNew, responseHasher, curve, g
|
|||||||
// Format of the output
|
// Format of the output
|
||||||
|
|
||||||
async function challengeContribute(curve, challengeFilename, responesFileName, entropy, logger) {
|
async function challengeContribute(curve, challengeFilename, responesFileName, entropy, logger) {
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
|
|
||||||
const fdFrom = await readExisting$2(challengeFilename);
|
const fdFrom = await readExisting$2(challengeFilename);
|
||||||
|
|
||||||
@ -3225,7 +3231,7 @@ async function challengeContribute(curve, challengeFilename, responesFileName, e
|
|||||||
const fdTo = await createOverride(responesFileName);
|
const fdTo = await createOverride(responesFileName);
|
||||||
|
|
||||||
// Calculate the hash
|
// Calculate the hash
|
||||||
const challengeHasher = Blake2b(64);
|
const challengeHasher = Blake2b__default['default'](64);
|
||||||
for (let i=0; i<fdFrom.totalSize; i+= fdFrom.pageSize) {
|
for (let i=0; i<fdFrom.totalSize; i+= fdFrom.pageSize) {
|
||||||
if (logger) logger.debug(`Hashing challenge ${i}/${fdFrom.totalSize}`);
|
if (logger) logger.debug(`Hashing challenge ${i}/${fdFrom.totalSize}`);
|
||||||
const s = Math.min(fdFrom.totalSize - i, fdFrom.pageSize);
|
const s = Math.min(fdFrom.totalSize - i, fdFrom.pageSize);
|
||||||
@ -3251,7 +3257,7 @@ async function challengeContribute(curve, challengeFilename, responesFileName, e
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const responseHasher = Blake2b(64);
|
const responseHasher = Blake2b__default['default'](64);
|
||||||
|
|
||||||
await fdTo.write(challengeHash);
|
await fdTo.write(challengeHash);
|
||||||
responseHasher.update(challengeHash);
|
responseHasher.update(challengeHash);
|
||||||
@ -3294,7 +3300,7 @@ async function beacon(oldPtauFilename, newPTauFilename, name, beaconHashStr,num
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
|
|
||||||
const {fd: fdOld, sections} = await readBinFile(oldPtauFilename, "ptau", 1);
|
const {fd: fdOld, sections} = await readBinFile(oldPtauFilename, "ptau", 1);
|
||||||
const {curve, power, ceremonyPower} = await readPTauHeader(fdOld, sections);
|
const {curve, power, ceremonyPower} = await readPTauHeader(fdOld, sections);
|
||||||
@ -3323,7 +3329,7 @@ async function beacon(oldPtauFilename, newPTauFilename, name, beaconHashStr,num
|
|||||||
|
|
||||||
curContribution.key = keyFromBeacon(curve, lastChallengeHash, beaconHash, numIterationsExp);
|
curContribution.key = keyFromBeacon(curve, lastChallengeHash, beaconHash, numIterationsExp);
|
||||||
|
|
||||||
const responseHasher = new Blake2b(64);
|
const responseHasher = new Blake2b__default['default'](64);
|
||||||
responseHasher.update(lastChallengeHash);
|
responseHasher.update(lastChallengeHash);
|
||||||
|
|
||||||
const fdNew = await createBinFile(newPTauFilename, "ptau", 1, 7);
|
const fdNew = await createBinFile(newPTauFilename, "ptau", 1, 7);
|
||||||
@ -3354,7 +3360,7 @@ async function beacon(oldPtauFilename, newPTauFilename, name, beaconHashStr,num
|
|||||||
|
|
||||||
if (logger) logger.info(formatHash(hashResponse, "Contribution Response Hash imported: "));
|
if (logger) logger.info(formatHash(hashResponse, "Contribution Response Hash imported: "));
|
||||||
|
|
||||||
const nextChallengeHasher = new Blake2b(64);
|
const nextChallengeHasher = new Blake2b__default['default'](64);
|
||||||
nextChallengeHasher.update(hashResponse);
|
nextChallengeHasher.update(hashResponse);
|
||||||
|
|
||||||
await hashSection(fdNew, "G1", 2, (2 ** power) * 2 -1, "tauG1", logger);
|
await hashSection(fdNew, "G1", 2, (2 ** power) * 2 -1, "tauG1", logger);
|
||||||
@ -3445,7 +3451,7 @@ async function beacon(oldPtauFilename, newPTauFilename, name, beaconHashStr,num
|
|||||||
// Format of the output
|
// Format of the output
|
||||||
|
|
||||||
async function contribute(oldPtauFilename, newPTauFilename, name, entropy, logger) {
|
async function contribute(oldPtauFilename, newPTauFilename, name, entropy, logger) {
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
|
|
||||||
const {fd: fdOld, sections} = await readBinFile(oldPtauFilename, "ptau", 1);
|
const {fd: fdOld, sections} = await readBinFile(oldPtauFilename, "ptau", 1);
|
||||||
const {curve, power, ceremonyPower} = await readPTauHeader(fdOld, sections);
|
const {curve, power, ceremonyPower} = await readPTauHeader(fdOld, sections);
|
||||||
@ -3478,7 +3484,7 @@ async function contribute(oldPtauFilename, newPTauFilename, name, entropy, logge
|
|||||||
curContribution.key = createPTauKey(curve, lastChallengeHash, rng);
|
curContribution.key = createPTauKey(curve, lastChallengeHash, rng);
|
||||||
|
|
||||||
|
|
||||||
const responseHasher = new Blake2b(64);
|
const responseHasher = new Blake2b__default['default'](64);
|
||||||
responseHasher.update(lastChallengeHash);
|
responseHasher.update(lastChallengeHash);
|
||||||
|
|
||||||
const fdNew = await createBinFile(newPTauFilename, "ptau", 1, 7);
|
const fdNew = await createBinFile(newPTauFilename, "ptau", 1, 7);
|
||||||
@ -3509,7 +3515,7 @@ async function contribute(oldPtauFilename, newPTauFilename, name, entropy, logge
|
|||||||
|
|
||||||
if (logger) logger.info(formatHash(hashResponse, "Contribution Response Hash imported: "));
|
if (logger) logger.info(formatHash(hashResponse, "Contribution Response Hash imported: "));
|
||||||
|
|
||||||
const nextChallengeHasher = new Blake2b(64);
|
const nextChallengeHasher = new Blake2b__default['default'](64);
|
||||||
nextChallengeHasher.update(hashResponse);
|
nextChallengeHasher.update(hashResponse);
|
||||||
|
|
||||||
await hashSection(fdNew, "G1", 2, (2 ** power) * 2 -1, "tauG1");
|
await hashSection(fdNew, "G1", 2, (2 ** power) * 2 -1, "tauG1");
|
||||||
@ -4363,7 +4369,7 @@ async function loadSymbols(symFileName) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const { WitnessCalculatorBuilder: WitnessCalculatorBuilder$1 } = circomRuntime;
|
const { WitnessCalculatorBuilder: WitnessCalculatorBuilder$1 } = circomRuntime__default['default'];
|
||||||
|
|
||||||
async function wtnsDebug(input, wasmFileName, wtnsFileName, symName, options, logger) {
|
async function wtnsDebug(input, wasmFileName, wtnsFileName, symName, options, logger) {
|
||||||
|
|
||||||
@ -4508,8 +4514,8 @@ async function newZKey(r1csName, ptauName, zkeyName, logger) {
|
|||||||
const TAU_G2 = 1;
|
const TAU_G2 = 1;
|
||||||
const ALPHATAU_G1 = 2;
|
const ALPHATAU_G1 = 2;
|
||||||
const BETATAU_G1 = 3;
|
const BETATAU_G1 = 3;
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
const csHasher = Blake2b(64);
|
const csHasher = Blake2b__default['default'](64);
|
||||||
|
|
||||||
const {fd: fdPTau, sections: sectionsPTau} = await readBinFile(ptauName, "ptau", 1, 1<<22, 1<<24);
|
const {fd: fdPTau, sections: sectionsPTau} = await readBinFile(ptauName, "ptau", 1, 1<<22, 1<<24);
|
||||||
const {curve, power} = await readPTauHeader(fdPTau, sectionsPTau);
|
const {curve, power} = await readPTauHeader(fdPTau, sectionsPTau);
|
||||||
@ -5386,7 +5392,7 @@ const sameRatio$2 = sameRatio;
|
|||||||
async function phase2verifyFromInit(initFileName, pTauFileName, zkeyFileName, logger) {
|
async function phase2verifyFromInit(initFileName, pTauFileName, zkeyFileName, logger) {
|
||||||
|
|
||||||
let sr;
|
let sr;
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
|
|
||||||
const {fd, sections} = await readBinFile(zkeyFileName, "zkey", 2);
|
const {fd, sections} = await readBinFile(zkeyFileName, "zkey", 2);
|
||||||
const zkey = await readHeader(fd, sections, "groth16");
|
const zkey = await readHeader(fd, sections, "groth16");
|
||||||
@ -5397,7 +5403,7 @@ async function phase2verifyFromInit(initFileName, pTauFileName, zkeyFileName, lo
|
|||||||
|
|
||||||
const mpcParams = await readMPCParams(fd, curve, sections);
|
const mpcParams = await readMPCParams(fd, curve, sections);
|
||||||
|
|
||||||
const accumulatedHasher = Blake2b(64);
|
const accumulatedHasher = Blake2b__default['default'](64);
|
||||||
accumulatedHasher.update(mpcParams.csHash);
|
accumulatedHasher.update(mpcParams.csHash);
|
||||||
let curDelta = curve.G1.g;
|
let curDelta = curve.G1.g;
|
||||||
for (let i=0; i<mpcParams.contributions.length; i++) {
|
for (let i=0; i<mpcParams.contributions.length; i++) {
|
||||||
@ -5443,7 +5449,7 @@ async function phase2verifyFromInit(initFileName, pTauFileName, zkeyFileName, lo
|
|||||||
|
|
||||||
hashPubKey(accumulatedHasher, curve, c);
|
hashPubKey(accumulatedHasher, curve, c);
|
||||||
|
|
||||||
const contributionHasher = Blake2b(64);
|
const contributionHasher = Blake2b__default['default'](64);
|
||||||
hashPubKey(contributionHasher, curve, c);
|
hashPubKey(contributionHasher, curve, c);
|
||||||
|
|
||||||
c.contributionHash = contributionHasher.digest();
|
c.contributionHash = contributionHasher.digest();
|
||||||
@ -5600,7 +5606,7 @@ async function phase2verifyFromInit(initFileName, pTauFileName, zkeyFileName, lo
|
|||||||
const bases2 = await fd2.read(n*sG);
|
const bases2 = await fd2.read(n*sG);
|
||||||
|
|
||||||
const scalars = new Uint8Array(4*n);
|
const scalars = new Uint8Array(4*n);
|
||||||
crypto.randomFillSync(scalars);
|
crypto__default['default'].randomFillSync(scalars);
|
||||||
|
|
||||||
|
|
||||||
const r1 = await G.multiExpAffine(bases1, scalars);
|
const r1 = await G.multiExpAffine(bases1, scalars);
|
||||||
@ -5632,7 +5638,7 @@ async function phase2verifyFromInit(initFileName, pTauFileName, zkeyFileName, lo
|
|||||||
|
|
||||||
const seed= new Array(8);
|
const seed= new Array(8);
|
||||||
for (let i=0; i<8; i++) {
|
for (let i=0; i<8; i++) {
|
||||||
seed[i] = crypto.randomBytes(4).readUInt32BE(0, true);
|
seed[i] = crypto__default['default'].randomBytes(4).readUInt32BE(0, true);
|
||||||
}
|
}
|
||||||
const rng = new ffjavascript.ChaCha(seed);
|
const rng = new ffjavascript.ChaCha(seed);
|
||||||
for (let i=0; i<zkey.domainSize-1; i++) { // Note that last one is zero
|
for (let i=0; i<zkey.domainSize-1; i++) { // Note that last one is zero
|
||||||
@ -5778,7 +5784,7 @@ async function phase2verifyFromR1cs(r1csFileName, pTauFileName, zkeyFileName, lo
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function phase2contribute(zkeyNameOld, zkeyNameNew, name, entropy, logger) {
|
async function phase2contribute(zkeyNameOld, zkeyNameNew, name, entropy, logger) {
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
|
|
||||||
const {fd: fdOld, sections: sections} = await readBinFile(zkeyNameOld, "zkey", 2);
|
const {fd: fdOld, sections: sections} = await readBinFile(zkeyNameOld, "zkey", 2);
|
||||||
const zkey = await readHeader(fdOld, sections, "groth16");
|
const zkey = await readHeader(fdOld, sections, "groth16");
|
||||||
@ -5792,7 +5798,7 @@ async function phase2contribute(zkeyNameOld, zkeyNameNew, name, entropy, logger)
|
|||||||
|
|
||||||
const rng = await getRandomRng(entropy);
|
const rng = await getRandomRng(entropy);
|
||||||
|
|
||||||
const transcriptHasher = Blake2b(64);
|
const transcriptHasher = Blake2b__default['default'](64);
|
||||||
transcriptHasher.update(mpcParams.csHash);
|
transcriptHasher.update(mpcParams.csHash);
|
||||||
for (let i=0; i<mpcParams.contributions.length; i++) {
|
for (let i=0; i<mpcParams.contributions.length; i++) {
|
||||||
hashPubKey(transcriptHasher, curve, mpcParams.contributions[i]);
|
hashPubKey(transcriptHasher, curve, mpcParams.contributions[i]);
|
||||||
@ -5845,7 +5851,7 @@ async function phase2contribute(zkeyNameOld, zkeyNameNew, name, entropy, logger)
|
|||||||
await fdOld.close();
|
await fdOld.close();
|
||||||
await fdNew.close();
|
await fdNew.close();
|
||||||
|
|
||||||
const contributionHasher = Blake2b(64);
|
const contributionHasher = Blake2b__default['default'](64);
|
||||||
hashPubKey(contributionHasher, curve, curContribution);
|
hashPubKey(contributionHasher, curve, curContribution);
|
||||||
|
|
||||||
const contribuionHash = contributionHasher.digest();
|
const contribuionHash = contributionHasher.digest();
|
||||||
@ -5857,7 +5863,7 @@ async function phase2contribute(zkeyNameOld, zkeyNameNew, name, entropy, logger)
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function beacon$1(zkeyNameOld, zkeyNameNew, name, beaconHashStr, numIterationsExp, logger) {
|
async function beacon$1(zkeyNameOld, zkeyNameNew, name, beaconHashStr, numIterationsExp, logger) {
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
|
|
||||||
const beaconHash = hex2ByteArray(beaconHashStr);
|
const beaconHash = hex2ByteArray(beaconHashStr);
|
||||||
if ( (beaconHash.byteLength == 0)
|
if ( (beaconHash.byteLength == 0)
|
||||||
@ -5889,7 +5895,7 @@ async function beacon$1(zkeyNameOld, zkeyNameNew, name, beaconHashStr, numIterat
|
|||||||
|
|
||||||
const rng = await rngFromBeaconParams(beaconHash, numIterationsExp);
|
const rng = await rngFromBeaconParams(beaconHash, numIterationsExp);
|
||||||
|
|
||||||
const transcriptHasher = Blake2b(64);
|
const transcriptHasher = Blake2b__default['default'](64);
|
||||||
transcriptHasher.update(mpcParams.csHash);
|
transcriptHasher.update(mpcParams.csHash);
|
||||||
for (let i=0; i<mpcParams.contributions.length; i++) {
|
for (let i=0; i<mpcParams.contributions.length; i++) {
|
||||||
hashPubKey(transcriptHasher, curve, mpcParams.contributions[i]);
|
hashPubKey(transcriptHasher, curve, mpcParams.contributions[i]);
|
||||||
@ -5945,7 +5951,7 @@ async function beacon$1(zkeyNameOld, zkeyNameNew, name, beaconHashStr, numIterat
|
|||||||
await fdOld.close();
|
await fdOld.close();
|
||||||
await fdNew.close();
|
await fdNew.close();
|
||||||
|
|
||||||
const contributionHasher = Blake2b(64);
|
const contributionHasher = Blake2b__default['default'](64);
|
||||||
hashPubKey(contributionHasher, curve, curContribution);
|
hashPubKey(contributionHasher, curve, curContribution);
|
||||||
|
|
||||||
const contribuionHash = contributionHasher.digest();
|
const contribuionHash = contributionHasher.digest();
|
||||||
@ -5965,7 +5971,7 @@ async function zkeyExportJson(zkeyFileName, verbose) {
|
|||||||
// Format of the output
|
// Format of the output
|
||||||
|
|
||||||
async function bellmanContribute(curve, challengeFilename, responesFileName, entropy, logger) {
|
async function bellmanContribute(curve, challengeFilename, responesFileName, entropy, logger) {
|
||||||
await Blake2b.ready();
|
await Blake2b__default['default'].ready();
|
||||||
|
|
||||||
const rng = await getRandomRng(entropy);
|
const rng = await getRandomRng(entropy);
|
||||||
|
|
||||||
@ -6024,7 +6030,7 @@ async function bellmanContribute(curve, challengeFilename, responesFileName, ent
|
|||||||
//////////
|
//////////
|
||||||
/// Read contributions
|
/// Read contributions
|
||||||
//////////
|
//////////
|
||||||
const transcriptHasher = Blake2b(64);
|
const transcriptHasher = Blake2b__default['default'](64);
|
||||||
|
|
||||||
const mpcParams = {};
|
const mpcParams = {};
|
||||||
// csHash
|
// csHash
|
||||||
@ -6075,7 +6081,7 @@ async function bellmanContribute(curve, challengeFilename, responesFileName, ent
|
|||||||
await fdTo.write(c.transcript);
|
await fdTo.write(c.transcript);
|
||||||
}
|
}
|
||||||
|
|
||||||
const contributionHasher = Blake2b(64);
|
const contributionHasher = Blake2b__default['default'](64);
|
||||||
hashPubKey(contributionHasher, curve, curContribution);
|
hashPubKey(contributionHasher, curve, curContribution);
|
||||||
|
|
||||||
const contributionHash = contributionHasher.digest();
|
const contributionHash = contributionHasher.digest();
|
||||||
|
4576
build/snarkjs.js
4576
build/snarkjs.js
File diff suppressed because one or more lines are too long
2
build/snarkjs.min.js
vendored
2
build/snarkjs.min.js
vendored
File diff suppressed because one or more lines are too long
415
package-lock.json
generated
415
package-lock.json
generated
@ -138,6 +138,11 @@
|
|||||||
"@types/node": "*"
|
"@types/node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@ungap/promise-all-settled": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
|
||||||
|
"integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q=="
|
||||||
|
},
|
||||||
"acorn": {
|
"acorn": {
|
||||||
"version": "7.4.1",
|
"version": "7.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
|
||||||
@ -195,7 +200,6 @@
|
|||||||
"version": "3.2.1",
|
"version": "3.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
|
||||||
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"color-convert": "^1.9.0"
|
"color-convert": "^1.9.0"
|
||||||
}
|
}
|
||||||
@ -204,7 +208,6 @@
|
|||||||
"version": "3.1.1",
|
"version": "3.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
|
||||||
"integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
|
"integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"normalize-path": "^3.0.0",
|
"normalize-path": "^3.0.0",
|
||||||
"picomatch": "^2.0.4"
|
"picomatch": "^2.0.4"
|
||||||
@ -214,7 +217,6 @@
|
|||||||
"version": "1.0.10",
|
"version": "1.0.10",
|
||||||
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
|
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
|
||||||
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
|
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"sprintf-js": "~1.0.2"
|
"sprintf-js": "~1.0.2"
|
||||||
}
|
}
|
||||||
@ -234,8 +236,7 @@
|
|||||||
"balanced-match": {
|
"balanced-match": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
||||||
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
|
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"big-integer": {
|
"big-integer": {
|
||||||
"version": "1.6.48",
|
"version": "1.6.48",
|
||||||
@ -245,8 +246,7 @@
|
|||||||
"binary-extensions": {
|
"binary-extensions": {
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
|
||||||
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
|
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"blake2b-wasm": {
|
"blake2b-wasm": {
|
||||||
"version": "git+https://github.com/jbaylina/blake2b-wasm.git#0d5f024b212429c7f50a7f533aa3a2406b5b42b3",
|
"version": "git+https://github.com/jbaylina/blake2b-wasm.git#0d5f024b212429c7f50a7f533aa3a2406b5b42b3",
|
||||||
@ -264,7 +264,6 @@
|
|||||||
"version": "1.1.11",
|
"version": "1.1.11",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
@ -274,7 +273,6 @@
|
|||||||
"version": "3.0.2",
|
"version": "3.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
|
||||||
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
|
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"fill-range": "^7.0.1"
|
"fill-range": "^7.0.1"
|
||||||
}
|
}
|
||||||
@ -282,8 +280,7 @@
|
|||||||
"browser-stdout": {
|
"browser-stdout": {
|
||||||
"version": "1.3.1",
|
"version": "1.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
|
||||||
"integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
|
"integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"buffer-from": {
|
"buffer-from": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
@ -316,8 +313,7 @@
|
|||||||
"camelcase": {
|
"camelcase": {
|
||||||
"version": "5.3.1",
|
"version": "5.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
|
||||||
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
|
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"chai": {
|
"chai": {
|
||||||
"version": "4.2.0",
|
"version": "4.2.0",
|
||||||
@ -373,31 +369,241 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"circom_runtime": {
|
"circom_runtime": {
|
||||||
"version": "0.1.5",
|
"version": "0.1.10",
|
||||||
"resolved": "https://registry.npmjs.org/circom_runtime/-/circom_runtime-0.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/circom_runtime/-/circom_runtime-0.1.10.tgz",
|
||||||
"integrity": "sha512-BT3d9VCrH/rBRbThDXG731JwezKyskxyE46nACO6Tt/jaorn27LDxFDORdAAjyD0RAoBt+6FpaTp3qlYSx7Pjg==",
|
"integrity": "sha512-4c4BfMHvTiVaWMVEHUaE8SRkpN7RKINYjvh/0/2jMoXA1rDBoPip6M6u5ss9lIrCA1EtXmR/1D/wyiDG7ZKIPA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"ffjavascript": "0.2.10",
|
"ffjavascript": "0.2.33",
|
||||||
"fnv-plus": "^1.3.1"
|
"fnv-plus": "^1.3.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"ansi-colors": {
|
||||||
|
"version": "4.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
|
||||||
|
"integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA=="
|
||||||
|
},
|
||||||
|
"ansi-styles": {
|
||||||
|
"version": "4.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
||||||
|
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
||||||
|
"requires": {
|
||||||
|
"color-convert": "^2.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"camelcase": {
|
||||||
|
"version": "6.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz",
|
||||||
|
"integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg=="
|
||||||
|
},
|
||||||
|
"chalk": {
|
||||||
|
"version": "4.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
|
||||||
|
"integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
|
||||||
|
"requires": {
|
||||||
|
"ansi-styles": "^4.1.0",
|
||||||
|
"supports-color": "^7.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chokidar": {
|
||||||
|
"version": "3.4.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz",
|
||||||
|
"integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==",
|
||||||
|
"requires": {
|
||||||
|
"anymatch": "~3.1.1",
|
||||||
|
"braces": "~3.0.2",
|
||||||
|
"fsevents": "~2.1.2",
|
||||||
|
"glob-parent": "~5.1.0",
|
||||||
|
"is-binary-path": "~2.1.0",
|
||||||
|
"is-glob": "~4.0.1",
|
||||||
|
"normalize-path": "~3.0.0",
|
||||||
|
"readdirp": "~3.5.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"color-convert": {
|
||||||
|
"version": "2.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
||||||
|
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
||||||
|
"requires": {
|
||||||
|
"color-name": "~1.1.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"color-name": {
|
||||||
|
"version": "1.1.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
||||||
|
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"version": "4.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
|
||||||
|
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
|
||||||
|
"requires": {
|
||||||
|
"ms": "2.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"decamelize": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ=="
|
||||||
|
},
|
||||||
|
"diff": {
|
||||||
|
"version": "4.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
|
||||||
|
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="
|
||||||
|
},
|
||||||
|
"escape-string-regexp": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
|
||||||
|
},
|
||||||
"ffjavascript": {
|
"ffjavascript": {
|
||||||
"version": "0.2.10",
|
"version": "0.2.33",
|
||||||
"resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.10.tgz",
|
"resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.33.tgz",
|
||||||
"integrity": "sha512-GQI6gHYYG5/iD4Kt3VzezzK7fARJzP0zkc82V/+JAdjfeKBXhDSo5rpKFuK3cDcrdW0Fu2emuYNMEAuFqhEQvQ==",
|
"integrity": "sha512-am1FeHarw5CxQJpYZpHkIkzvPhl714jHFmS2Z4ocThiL99aZ8fnYnfc++0fEqZMw5xRsNBCiZArkPklcpP0seQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"big-integer": "^1.6.48",
|
"big-integer": "^1.6.48",
|
||||||
"wasmcurves": "0.0.5",
|
"mocha": "^8.2.1",
|
||||||
|
"wasmcurves": "0.0.14",
|
||||||
"worker-threads": "^1.0.0"
|
"worker-threads": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"wasmcurves": {
|
"find-up": {
|
||||||
"version": "0.0.5",
|
"version": "5.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/wasmcurves/-/wasmcurves-0.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
|
||||||
"integrity": "sha512-BmI4GXLjLawGg2YkvHa8zRsnWec+d1uwoxE+Iov8cqOpDL7GA5XO2pk2yuDbXHMzwIug2exnKot3baRZ86R0pA==",
|
"integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"big-integer": "^1.6.42",
|
"locate-path": "^6.0.0",
|
||||||
"blakejs": "^1.1.0"
|
"path-exists": "^4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flat": {
|
||||||
|
"version": "5.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
|
||||||
|
"integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ=="
|
||||||
|
},
|
||||||
|
"has-flag": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
|
||||||
|
},
|
||||||
|
"js-yaml": {
|
||||||
|
"version": "3.14.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
|
||||||
|
"integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
|
||||||
|
"requires": {
|
||||||
|
"argparse": "^1.0.7",
|
||||||
|
"esprima": "^4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"locate-path": {
|
||||||
|
"version": "6.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
|
||||||
|
"integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
|
||||||
|
"requires": {
|
||||||
|
"p-locate": "^5.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"log-symbols": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==",
|
||||||
|
"requires": {
|
||||||
|
"chalk": "^4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mocha": {
|
||||||
|
"version": "8.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/mocha/-/mocha-8.2.1.tgz",
|
||||||
|
"integrity": "sha512-cuLBVfyFfFqbNR0uUKbDGXKGk+UDFe6aR4os78XIrMQpZl/nv7JYHcvP5MFIAb374b2zFXsdgEGwmzMtP0Xg8w==",
|
||||||
|
"requires": {
|
||||||
|
"@ungap/promise-all-settled": "1.1.2",
|
||||||
|
"ansi-colors": "4.1.1",
|
||||||
|
"browser-stdout": "1.3.1",
|
||||||
|
"chokidar": "3.4.3",
|
||||||
|
"debug": "4.2.0",
|
||||||
|
"diff": "4.0.2",
|
||||||
|
"escape-string-regexp": "4.0.0",
|
||||||
|
"find-up": "5.0.0",
|
||||||
|
"glob": "7.1.6",
|
||||||
|
"growl": "1.10.5",
|
||||||
|
"he": "1.2.0",
|
||||||
|
"js-yaml": "3.14.0",
|
||||||
|
"log-symbols": "4.0.0",
|
||||||
|
"minimatch": "3.0.4",
|
||||||
|
"ms": "2.1.2",
|
||||||
|
"nanoid": "3.1.12",
|
||||||
|
"serialize-javascript": "5.0.1",
|
||||||
|
"strip-json-comments": "3.1.1",
|
||||||
|
"supports-color": "7.2.0",
|
||||||
|
"which": "2.0.2",
|
||||||
|
"wide-align": "1.1.3",
|
||||||
|
"workerpool": "6.0.2",
|
||||||
|
"yargs": "13.3.2",
|
||||||
|
"yargs-parser": "13.1.2",
|
||||||
|
"yargs-unparser": "2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"p-limit": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
|
||||||
|
"requires": {
|
||||||
|
"yocto-queue": "^0.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"p-locate": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
|
||||||
|
"requires": {
|
||||||
|
"p-limit": "^3.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"path-exists": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
|
||||||
|
},
|
||||||
|
"readdirp": {
|
||||||
|
"version": "3.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
|
||||||
|
"integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
|
||||||
|
"requires": {
|
||||||
|
"picomatch": "^2.2.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"serialize-javascript": {
|
||||||
|
"version": "5.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz",
|
||||||
|
"integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==",
|
||||||
|
"requires": {
|
||||||
|
"randombytes": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"supports-color": {
|
||||||
|
"version": "7.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
||||||
|
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
|
||||||
|
"requires": {
|
||||||
|
"has-flag": "^4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"which": {
|
||||||
|
"version": "2.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
||||||
|
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
|
||||||
|
"requires": {
|
||||||
|
"isexe": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yargs-unparser": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
|
||||||
|
"requires": {
|
||||||
|
"camelcase": "^6.0.0",
|
||||||
|
"decamelize": "^4.0.0",
|
||||||
|
"flat": "^5.0.2",
|
||||||
|
"is-plain-obj": "^2.1.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -421,7 +627,6 @@
|
|||||||
"version": "5.0.0",
|
"version": "5.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
|
||||||
"integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
|
"integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"string-width": "^3.1.0",
|
"string-width": "^3.1.0",
|
||||||
"strip-ansi": "^5.2.0",
|
"strip-ansi": "^5.2.0",
|
||||||
@ -431,20 +636,17 @@
|
|||||||
"emoji-regex": {
|
"emoji-regex": {
|
||||||
"version": "7.0.3",
|
"version": "7.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
|
||||||
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
|
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"is-fullwidth-code-point": {
|
"is-fullwidth-code-point": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
|
||||||
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
|
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"string-width": {
|
"string-width": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
|
||||||
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
|
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"emoji-regex": "^7.0.1",
|
"emoji-regex": "^7.0.1",
|
||||||
"is-fullwidth-code-point": "^2.0.0",
|
"is-fullwidth-code-point": "^2.0.0",
|
||||||
@ -457,7 +659,6 @@
|
|||||||
"version": "1.9.3",
|
"version": "1.9.3",
|
||||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
|
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
|
||||||
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
|
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"color-name": "1.1.3"
|
"color-name": "1.1.3"
|
||||||
}
|
}
|
||||||
@ -465,8 +666,7 @@
|
|||||||
"color-name": {
|
"color-name": {
|
||||||
"version": "1.1.3",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
|
||||||
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
|
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"commander": {
|
"commander": {
|
||||||
"version": "2.20.3",
|
"version": "2.20.3",
|
||||||
@ -483,8 +683,7 @@
|
|||||||
"concat-map": {
|
"concat-map": {
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||||
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
|
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"cross-spawn": {
|
"cross-spawn": {
|
||||||
"version": "6.0.5",
|
"version": "6.0.5",
|
||||||
@ -519,8 +718,7 @@
|
|||||||
"decamelize": {
|
"decamelize": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
|
||||||
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
|
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"deep-eql": {
|
"deep-eql": {
|
||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
@ -708,8 +906,7 @@
|
|||||||
"esprima": {
|
"esprima": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
|
||||||
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
|
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"esquery": {
|
"esquery": {
|
||||||
"version": "1.3.1",
|
"version": "1.3.1",
|
||||||
@ -829,7 +1026,6 @@
|
|||||||
"version": "7.0.1",
|
"version": "7.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
|
||||||
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
|
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"to-regex-range": "^5.0.1"
|
"to-regex-range": "^5.0.1"
|
||||||
}
|
}
|
||||||
@ -838,7 +1034,6 @@
|
|||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
|
||||||
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
|
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"locate-path": "^3.0.0"
|
"locate-path": "^3.0.0"
|
||||||
}
|
}
|
||||||
@ -877,14 +1072,12 @@
|
|||||||
"fs.realpath": {
|
"fs.realpath": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||||
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
|
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"fsevents": {
|
"fsevents": {
|
||||||
"version": "2.1.3",
|
"version": "2.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
|
||||||
"integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
|
"integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
|
||||||
"dev": true,
|
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"function-bind": {
|
"function-bind": {
|
||||||
@ -902,8 +1095,7 @@
|
|||||||
"get-caller-file": {
|
"get-caller-file": {
|
||||||
"version": "2.0.5",
|
"version": "2.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
|
||||||
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
|
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"get-func-name": {
|
"get-func-name": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
@ -926,7 +1118,6 @@
|
|||||||
"version": "7.1.6",
|
"version": "7.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
|
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
|
||||||
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
|
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"fs.realpath": "^1.0.0",
|
"fs.realpath": "^1.0.0",
|
||||||
"inflight": "^1.0.4",
|
"inflight": "^1.0.4",
|
||||||
@ -940,7 +1131,6 @@
|
|||||||
"version": "5.1.1",
|
"version": "5.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
|
||||||
"integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
|
"integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-glob": "^4.0.1"
|
"is-glob": "^4.0.1"
|
||||||
}
|
}
|
||||||
@ -957,8 +1147,7 @@
|
|||||||
"growl": {
|
"growl": {
|
||||||
"version": "1.10.5",
|
"version": "1.10.5",
|
||||||
"resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
|
"resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
|
||||||
"integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
|
"integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"has": {
|
"has": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
@ -984,8 +1173,7 @@
|
|||||||
"he": {
|
"he": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
|
||||||
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
|
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"iconv-lite": {
|
"iconv-lite": {
|
||||||
"version": "0.4.24",
|
"version": "0.4.24",
|
||||||
@ -1022,7 +1210,6 @@
|
|||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||||
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"once": "^1.3.0",
|
"once": "^1.3.0",
|
||||||
"wrappy": "1"
|
"wrappy": "1"
|
||||||
@ -1031,8 +1218,7 @@
|
|||||||
"inherits": {
|
"inherits": {
|
||||||
"version": "2.0.4",
|
"version": "2.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"inquirer": {
|
"inquirer": {
|
||||||
"version": "7.3.3",
|
"version": "7.3.3",
|
||||||
@ -1119,7 +1305,6 @@
|
|||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
|
||||||
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
|
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"binary-extensions": "^2.0.0"
|
"binary-extensions": "^2.0.0"
|
||||||
}
|
}
|
||||||
@ -1154,8 +1339,7 @@
|
|||||||
"is-extglob": {
|
"is-extglob": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
||||||
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
|
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"is-fullwidth-code-point": {
|
"is-fullwidth-code-point": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
@ -1167,7 +1351,6 @@
|
|||||||
"version": "4.0.1",
|
"version": "4.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
|
||||||
"integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
|
"integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-extglob": "^2.1.1"
|
"is-extglob": "^2.1.1"
|
||||||
}
|
}
|
||||||
@ -1187,8 +1370,12 @@
|
|||||||
"is-number": {
|
"is-number": {
|
||||||
"version": "7.0.0",
|
"version": "7.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
|
||||||
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
|
||||||
"dev": true
|
},
|
||||||
|
"is-plain-obj": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA=="
|
||||||
},
|
},
|
||||||
"is-reference": {
|
"is-reference": {
|
||||||
"version": "1.2.1",
|
"version": "1.2.1",
|
||||||
@ -1220,8 +1407,7 @@
|
|||||||
"isexe": {
|
"isexe": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
||||||
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
|
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"jest-worker": {
|
"jest-worker": {
|
||||||
"version": "26.6.2",
|
"version": "26.6.2",
|
||||||
@ -1293,7 +1479,6 @@
|
|||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
|
||||||
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
|
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"p-locate": "^3.0.0",
|
"p-locate": "^3.0.0",
|
||||||
"path-exists": "^3.0.0"
|
"path-exists": "^3.0.0"
|
||||||
@ -1344,7 +1529,6 @@
|
|||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
||||||
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"brace-expansion": "^1.1.7"
|
"brace-expansion": "^1.1.7"
|
||||||
}
|
}
|
||||||
@ -1455,8 +1639,7 @@
|
|||||||
"ms": {
|
"ms": {
|
||||||
"version": "2.1.2",
|
"version": "2.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"mute-stream": {
|
"mute-stream": {
|
||||||
"version": "0.0.8",
|
"version": "0.0.8",
|
||||||
@ -1469,6 +1652,11 @@
|
|||||||
"resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-1.1.0.tgz",
|
||||||
"integrity": "sha1-TzFS4JVA/eKMdvRLGbvNHVpCR40="
|
"integrity": "sha1-TzFS4JVA/eKMdvRLGbvNHVpCR40="
|
||||||
},
|
},
|
||||||
|
"nanoid": {
|
||||||
|
"version": "3.1.12",
|
||||||
|
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.12.tgz",
|
||||||
|
"integrity": "sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A=="
|
||||||
|
},
|
||||||
"natural-compare": {
|
"natural-compare": {
|
||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
|
||||||
@ -1502,8 +1690,7 @@
|
|||||||
"normalize-path": {
|
"normalize-path": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
|
||||||
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
|
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"object-inspect": {
|
"object-inspect": {
|
||||||
"version": "1.9.0",
|
"version": "1.9.0",
|
||||||
@ -1544,7 +1731,6 @@
|
|||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"wrappy": "1"
|
"wrappy": "1"
|
||||||
}
|
}
|
||||||
@ -1582,7 +1768,6 @@
|
|||||||
"version": "2.3.0",
|
"version": "2.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
|
||||||
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
|
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"p-try": "^2.0.0"
|
"p-try": "^2.0.0"
|
||||||
}
|
}
|
||||||
@ -1591,7 +1776,6 @@
|
|||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
|
||||||
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
|
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"p-limit": "^2.0.0"
|
"p-limit": "^2.0.0"
|
||||||
}
|
}
|
||||||
@ -1599,8 +1783,7 @@
|
|||||||
"p-try": {
|
"p-try": {
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
|
||||||
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
|
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"parent-module": {
|
"parent-module": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
@ -1614,14 +1797,12 @@
|
|||||||
"path-exists": {
|
"path-exists": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
|
||||||
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
|
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"path-is-absolute": {
|
"path-is-absolute": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
||||||
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
|
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"path-key": {
|
"path-key": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
@ -1644,8 +1825,7 @@
|
|||||||
"picomatch": {
|
"picomatch": {
|
||||||
"version": "2.2.2",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
|
||||||
"integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
|
"integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"prelude-ls": {
|
"prelude-ls": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
@ -1710,7 +1890,6 @@
|
|||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
|
||||||
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
|
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"safe-buffer": "^5.1.0"
|
"safe-buffer": "^5.1.0"
|
||||||
}
|
}
|
||||||
@ -1733,14 +1912,12 @@
|
|||||||
"require-directory": {
|
"require-directory": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
|
||||||
"integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
|
"integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"require-main-filename": {
|
"require-main-filename": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
|
||||||
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
|
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"resolve": {
|
"resolve": {
|
||||||
"version": "1.19.0",
|
"version": "1.19.0",
|
||||||
@ -1816,8 +1993,7 @@
|
|||||||
"safe-buffer": {
|
"safe-buffer": {
|
||||||
"version": "5.2.1",
|
"version": "5.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
||||||
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
|
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"safer-buffer": {
|
"safer-buffer": {
|
||||||
"version": "2.1.2",
|
"version": "2.1.2",
|
||||||
@ -1843,8 +2019,7 @@
|
|||||||
"set-blocking": {
|
"set-blocking": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
|
||||||
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
|
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"shebang-command": {
|
"shebang-command": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
@ -1919,8 +2094,7 @@
|
|||||||
"sprintf-js": {
|
"sprintf-js": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
|
||||||
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
|
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"string-width": {
|
"string-width": {
|
||||||
"version": "4.2.0",
|
"version": "4.2.0",
|
||||||
@ -1968,7 +2142,6 @@
|
|||||||
"version": "5.2.0",
|
"version": "5.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
|
||||||
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
|
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"ansi-regex": "^4.1.0"
|
"ansi-regex": "^4.1.0"
|
||||||
},
|
},
|
||||||
@ -1976,16 +2149,14 @@
|
|||||||
"ansi-regex": {
|
"ansi-regex": {
|
||||||
"version": "4.1.0",
|
"version": "4.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
|
||||||
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
|
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
|
||||||
"dev": true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"strip-json-comments": {
|
"strip-json-comments": {
|
||||||
"version": "3.1.1",
|
"version": "3.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
|
||||||
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
|
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"supports-color": {
|
"supports-color": {
|
||||||
"version": "5.5.0",
|
"version": "5.5.0",
|
||||||
@ -2069,7 +2240,6 @@
|
|||||||
"version": "5.0.1",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||||
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
|
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-number": "^7.0.0"
|
"is-number": "^7.0.0"
|
||||||
}
|
}
|
||||||
@ -2137,14 +2307,12 @@
|
|||||||
"which-module": {
|
"which-module": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
|
||||||
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
|
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"wide-align": {
|
"wide-align": {
|
||||||
"version": "1.1.3",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
|
||||||
"integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
|
"integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"string-width": "^1.0.2 || 2"
|
"string-width": "^1.0.2 || 2"
|
||||||
},
|
},
|
||||||
@ -2152,20 +2320,17 @@
|
|||||||
"ansi-regex": {
|
"ansi-regex": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
|
||||||
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
|
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"is-fullwidth-code-point": {
|
"is-fullwidth-code-point": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
|
||||||
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
|
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"string-width": {
|
"string-width": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
|
||||||
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
|
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-fullwidth-code-point": "^2.0.0",
|
"is-fullwidth-code-point": "^2.0.0",
|
||||||
"strip-ansi": "^4.0.0"
|
"strip-ansi": "^4.0.0"
|
||||||
@ -2175,7 +2340,6 @@
|
|||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
|
||||||
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
|
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"ansi-regex": "^3.0.0"
|
"ansi-regex": "^3.0.0"
|
||||||
}
|
}
|
||||||
@ -2193,11 +2357,15 @@
|
|||||||
"resolved": "https://registry.npmjs.org/worker-threads/-/worker-threads-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/worker-threads/-/worker-threads-1.0.0.tgz",
|
||||||
"integrity": "sha512-vK6Hhvph8oLxocEJIlc3YfGAZhm210uGzjZsXSu+JYLAQ/s/w4Tqgl60JrdH58hW8NSGP4m3bp8a92qPXgX05w=="
|
"integrity": "sha512-vK6Hhvph8oLxocEJIlc3YfGAZhm210uGzjZsXSu+JYLAQ/s/w4Tqgl60JrdH58hW8NSGP4m3bp8a92qPXgX05w=="
|
||||||
},
|
},
|
||||||
|
"workerpool": {
|
||||||
|
"version": "6.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.2.tgz",
|
||||||
|
"integrity": "sha512-DSNyvOpFKrNusaaUwk+ej6cBj1bmhLcBfj80elGk+ZIo5JSkq+unB1dLKEOcNfJDZgjGICfhQ0Q5TbP0PvF4+Q=="
|
||||||
|
},
|
||||||
"wrap-ansi": {
|
"wrap-ansi": {
|
||||||
"version": "5.1.0",
|
"version": "5.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
|
||||||
"integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
|
"integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"ansi-styles": "^3.2.0",
|
"ansi-styles": "^3.2.0",
|
||||||
"string-width": "^3.0.0",
|
"string-width": "^3.0.0",
|
||||||
@ -2207,20 +2375,17 @@
|
|||||||
"emoji-regex": {
|
"emoji-regex": {
|
||||||
"version": "7.0.3",
|
"version": "7.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
|
||||||
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
|
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"is-fullwidth-code-point": {
|
"is-fullwidth-code-point": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
|
||||||
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
|
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"string-width": {
|
"string-width": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
|
||||||
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
|
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"emoji-regex": "^7.0.1",
|
"emoji-regex": "^7.0.1",
|
||||||
"is-fullwidth-code-point": "^2.0.0",
|
"is-fullwidth-code-point": "^2.0.0",
|
||||||
@ -2232,8 +2397,7 @@
|
|||||||
"wrappy": {
|
"wrappy": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
|
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"write": {
|
"write": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
@ -2247,14 +2411,12 @@
|
|||||||
"y18n": {
|
"y18n": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
|
||||||
"integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
|
"integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"yargs": {
|
"yargs": {
|
||||||
"version": "13.3.2",
|
"version": "13.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
|
||||||
"integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
|
"integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"cliui": "^5.0.0",
|
"cliui": "^5.0.0",
|
||||||
"find-up": "^3.0.0",
|
"find-up": "^3.0.0",
|
||||||
@ -2271,20 +2433,17 @@
|
|||||||
"emoji-regex": {
|
"emoji-regex": {
|
||||||
"version": "7.0.3",
|
"version": "7.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
|
||||||
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
|
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"is-fullwidth-code-point": {
|
"is-fullwidth-code-point": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
|
||||||
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
|
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"string-width": {
|
"string-width": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
|
||||||
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
|
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"emoji-regex": "^7.0.1",
|
"emoji-regex": "^7.0.1",
|
||||||
"is-fullwidth-code-point": "^2.0.0",
|
"is-fullwidth-code-point": "^2.0.0",
|
||||||
@ -2297,7 +2456,6 @@
|
|||||||
"version": "13.1.2",
|
"version": "13.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
|
||||||
"integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
|
"integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"camelcase": "^5.0.0",
|
"camelcase": "^5.0.0",
|
||||||
"decamelize": "^1.2.0"
|
"decamelize": "^1.2.0"
|
||||||
@ -2313,6 +2471,11 @@
|
|||||||
"lodash": "^4.17.15",
|
"lodash": "^4.17.15",
|
||||||
"yargs": "^13.3.0"
|
"yargs": "^13.3.0"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"yocto-queue": {
|
||||||
|
"version": "0.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
|
||||||
|
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iden3/binfileutils": "0.0.7",
|
"@iden3/binfileutils": "0.0.7",
|
||||||
"blake2b-wasm": "https://github.com/jbaylina/blake2b-wasm.git",
|
"blake2b-wasm": "https://github.com/jbaylina/blake2b-wasm.git",
|
||||||
"circom_runtime": "0.1.5",
|
"circom_runtime": "0.1.10",
|
||||||
"fastfile": "0.0.18",
|
"fastfile": "0.0.18",
|
||||||
"ffjavascript": "0.2.32",
|
"ffjavascript": "0.2.32",
|
||||||
"logplease": "^1.2.15",
|
"logplease": "^1.2.15",
|
||||||
|
Loading…
Reference in New Issue
Block a user